<?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/"
	>

<channel>
	<title>Blog WidPlay</title>
	<atom:link href="http://blog.widplay.org/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blog.widplay.org</link>
	<description>All in one</description>
	<lastBuildDate>Tue, 10 Apr 2012 05:14:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Redirigir sin malware</title>
		<link>http://blog.widplay.org/?p=87</link>
		<comments>http://blog.widplay.org/?p=87#comments</comments>
		<pubDate>Tue, 10 Apr 2012 04:48:57 +0000</pubDate>
		<dc:creator>Leif Ferreira</dc:creator>
				<category><![CDATA[Core]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[malware]]></category>
		<category><![CDATA[redirigir]]></category>
		<category><![CDATA[safebrwosing]]></category>

		<guid isPermaLink="false">http://blog.widplay.org/?p=87</guid>
		<description><![CDATA[Os dejo un toque de seguridad extra que hemos implantado en WidPlay y os puede venir bien a otros desarrolladores. Una red social (o cualquier web) no solo debes intentar que sea lo más segura posible en su núcleo, si no que además debe evitar la posibilidad que desde ella sus usuarios puedan acceder a [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Os dejo un toque de seguridad extra que hemos implantado en WidPlay y os puede venir bien a otros desarrolladores.<br />
Una red social (o cualquier web) no solo debes intentar que sea lo más segura posible en su núcleo, si no que además debe evitar la posibilidad que desde ella sus usuarios puedan acceder a contenido infectado.<br />
Este pequeño truco que hemos implantado en WidPlay (versión en desarrollo), utiliza un servicio de Google para verificar que la página no tiene ningún malware que pueda poner en peligro al visitante.<br />
La idea consiste en lo siguiente: A menudo un usuario en su muro o a través de cualquiera de las múltiples APPs que dispone WidPlay puede pinchar en un enlace que hay ahí publicado. Normalmente estos enlaces los publican amigos que raramente tengan una mala intención, pero ¿Y si se da el caso de que uno tiene esa mala intención? Pues bien, el atacante si encuentra que no es vulnerable aun tiene posibilidades de infectarte, simplemente publicando un enlace que tu luego visitarás.<br />
Y es ahí donde nosotros como plataforma entramos en juego. Lo que hacemos es que todos los enlaces hacia afuera de WidPlay pasan por un sistema de control de calidad. Este sistema pregunta a Google que piensa sobre esa web, y de ser positivo el resultado dejamos que siga, pero en caso de contener malware le cortamos el acceso impidiendo que entre y notificándole del problema, una vez más le salvamos de una catástrofe <img src='http://blog.widplay.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> !<br />
Lo bueno es que aun así muchos navegadores ya comprueban antes si es fiable o no, y con esto haces un doble muro de seguridad.<br />
El código libre para uso<br />
Nosotros utilizamos JQUERY 1.7.2 en la parte de Javascript. Lo que necesitamos es que a cualquier enlace que pulse valla a la pagina de verificar (en nuestro caso un script llamado url.php en la carpeta extern), para ello esto os funcionará:</p>
<pre>       /*
           CADA ENLACE EXTERNO QUE QUIERA VER DEBE PRIMERO MIRAR SI ES UN ENLACE VIABLE
       */
       $("#widplay").on("click", "a", function(e){
       var div = $(this),
           href = div.attr("href"),
           urlVerificar = 'extern/url.php?u=' + encodeURIComponent(href);

           // Cambiamos el href al de verificar
           if(e.type == "click"){
           div.attr('href', urlVerificar).attr("hrefBack", href);
           }

           // A los 200 milisegundos cambiamos el href de nuevo
           // Para setTimeout preferimos usar el plugin para jquery doTimeout, tu si no quieres usarlo puedes poner un setTimeout normal.
           $.doTimeout(200, function(){
           div.attr('href', div.attr("hrefBack"));         
           });
       });</pre>
<p style="text-align: justify;">En la parte del script usamos una tabla simple en la base de datos con dos campos URL (varchar &#8211; 255) y MALWARE (tinyint &#8211; 1).</p>
<p style="text-align: justify;">En el script se llama a la base de datos primero para ver si ya había sido comprobada antes y así evitar hacer llamadas tontas a Google. Si se había comprobado miramos cual era el resultado. Pero si no estaba en la base de datos llamamos a Google a la API de safebrowsing (<a href="https://developers.google.com/safe-browsing/?hl=es-ES" target="_blank">https://developers.google.com/safe-browsing/?hl=es-ES</a>), y si en su contenido está la palabra “malware” entonces tenemos un problema <img src='http://blog.widplay.org/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> .<br />
Para las llamadas se usa curl pero yo para estas cosas de curls uso una clase que publicaron en Ontuts que es muy usable:<a href="http://web.ontuts.com/tutoriales/aprendiendo-a-utilizar-la-libreria-curl-en-php/" target="_blank"> http://web.ontuts.com/tutoriales/aprendiendo-a-utilizar-la-libreria-curl-en-php/</a></p>
<p style="text-align: justify;">Notar que nosotros llamamos a una clase propia nuestra, esta la usamos para comprobar que el usuario está conectado y no usan nuestro script otras páginas jejeje.</p>
<p style="text-align: justify;">También debereís pedirle a Google una KEYAPI para este servicio, en la misma página del servicio puedes pero necesitas tener una cuenta de usuario con Google.</p>
<pre>&lt;?php
/******************************************************/
/***************** SAFEBROWSING ***********************/
/******************************************************/

// La clave de la API de Google SafeBrowsing
$apiKeySafe = 'xxxxxxx';
    // Comprobamos que está conectado
    require('../nuestraClase.php');
    $login = new loginWP();
    $login-&gt;check('w/');

    // Recuperamos la url
    $url = $_GET[u];
    $urlDecode = urldecode($url);

    $urlLimpia = $login-&gt;clean($urlDecode);

    // Primero miramos en la base de datos si ya teniamos un veredicto sobre esta url
    // Esto aunque pueda ser lento lo hacemos para que google no nos banee la cuenta api
    $q = mysql_query("SELECT CAMPO_MALWARE FROM tabla_urls WHERE CAMPO_URL = '$urlLimpia' LIMIT 1");
    if(mysql_num_rows($q) == 1){
    // La teniamos ya comprobada    
        if(mysql_result($q, 0) == 1){
        // Es malware
        $malware = 1;    
        }
    }else{
    // No la teniamos, sacamos el resultado
    $malware = 0;
    $urlVerificar = 'http://sb-ssl.google.com/safebrowsing/api/lookup?client=api&amp;apikey='.$apiKeySafe.'&amp;appver=1.0&amp;pver=3.0&amp;url='.$url;

        // Llamamos, libreria de ontuts (La hemos incluido nosotros en la clase nuestra, tu añádetela donde quieras)
        // http://web.ontuts.com/tutoriales/aprendiendo-a-utilizar-la-libreria-curl-en-php/
        $http = new HttpConnection();  
        $http-&gt;init();  
        $resultado = $http-&gt;get($urlVerificar, true);  // True es para que siga la redireccion que hay
        $http-&gt;close();

        if(strstr($resultado, 'malware')){
        // Tiene malware    
        $malware = 1;
        }

        // Guardamos el veredicto para esa url
        mysql_query("INSERT INTO tabla_urls VALUES ('$urlLimpia', $malware)");
    }

    // Funcion para la redireccion
    function redirigir($url){
        // Por php si no se han mandado cabezeras
        if(!headers_sent()){
        header('location: '.$url);
        exit;
        }

        // Por js si habian sido mandadas
        exit('&lt;meta http-equiv="refresh" content="0; url='.$url.'"/&gt;');
        return;
    }

    // Si no es malware redirijimos a esa url
    if($malware != 1){
    redirigir($urlDecode);
    }

?&gt;
&lt;!DOCTYPE html&gt;
&lt;html lang="es"&gt;
    &lt;head&gt;
    &lt;meta charset="utf-8"&gt;
    &lt;title&gt;WidPlay - Malware detectado!!&lt;/title&gt;
    &lt;/head&gt;

    &lt;body&gt;
        &lt;div id="malware"&gt;
            &lt;h1&gt;Malware detectado!!&lt;/h1&gt;
            &lt;p&gt;Nuestros sistemas han detectado que la página web a la que intentas acceder puede comprometer gravemente la seguridad de tu ordenador. Te hemos bloqueado el acceso a "&lt;em&gt;&lt;?php echo $url; ?&gt;&lt;/em&gt;" para que no te infectes.&lt;/p&gt;
            &lt;b&gt;Un servicio de WidPlay - Velando por tu seguridad&lt;/b&gt;
        &lt;/div&gt;
    &lt;/body&gt;
&lt;/html&gt;</pre>
<p>Puedes ver como queda para el usuario en este video<br />
<iframe src="http://www.youtube.com/embed/mpK3dL43vLQ" frameborder="0" width="560" height="315"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.widplay.org/?feed=rss2&#038;p=87</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>HML5 + Youtube = Widget de música más óptimo</title>
		<link>http://blog.widplay.org/?p=83</link>
		<comments>http://blog.widplay.org/?p=83#comments</comments>
		<pubDate>Thu, 16 Feb 2012 04:06:39 +0000</pubDate>
		<dc:creator>Leif Ferreira</dc:creator>
				<category><![CDATA[Aplicaciones]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[optimizar]]></category>
		<category><![CDATA[velocidad]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://blog.widplay.org/?p=83</guid>
		<description><![CDATA[Como ya sabéis en WidPlay se puede escuchar casi toda la música del mundo en solo 2 clicks gratuitamente. Además no solo la canción, también el videoclip, cosa que a mí personalmente le aumenta el disfrute al escuchar una canción: Escuchar una de Lynyrd Skynyrd está muy bien, pero escuchar una de Lynyrd Skynyrd mientras [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Como ya sabéis en WidPlay se puede escuchar casi toda la música del mundo en solo 2 clicks gratuitamente. Además no solo la canción, también el videoclip, cosa que a mí personalmente le aumenta el disfrute al escuchar una canción: Escuchar una de Lynyrd Skynyrd está muy bien, pero escuchar una de Lynyrd Skynyrd mientras los ves en un directo tocando las guitarras… pfff mejora considerablemente! Eso suponía un problema, usar Flash… L</p>
<p style="text-align: justify;">Durante este mes estamos analizando muchas técnicas que usamos actualmente en WidPlay, enrevesado siempre un poco más para ver cómo mejorar tal o cual funcionalidad y así mejorar la experiencia con ella. Nos hemos dado cuenta que el reproductor de música, cuando está reproduciendo una canción, ralentiza mucho la interfaz de WidPlay al completo, así que analizando hemos detectado la causa. Como para el videoclip utilizamos la API de Youtube del reproductor para manejar el video, esto hacia que en una de las partes usásemos algo en contra de nuestra ideología: el Flash… Algo que teníamos que tragar por cada uno de nuestros orificios… pero hasta hace poco!, que era normal porque era la única opción que existía, gracias a dios (Google todopoderoso) la tecnología avanza, y estos chicos se han adaptado al HTML5 desde hace 1 año aproximadamente con una versión funcional. Aunque en su momento la cosa era bastante experimental, hoy en día es bastante sólida y hay una forma clara de usarse, y tras aprender con ella hemos decidido implementarla, y queremos compartir como.</p>
<p style="text-align: justify;">Bueno a ver, como casi todos os habéis dado cuenta Youtube, en su forma normal de embeder videos, ha cambiado. Ahora nos proporciona un IFRAME en vez de un embed. Esto es bueno por muchas ventajas, pero además ahora Youtube puede valorar si darte dentro de ese iframe un embed flash (si tu navegador lo soporta) o un tag &lt;video&gt; de HTML5 (Lógicamente lo mejor, tengas o no soporte para Flash  <img src='http://blog.widplay.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ), y el webmaster o el usuario que pone el código ya no tiene que cambiar nada sea cual sea el tipo de usuario que visite esa página.</p>
<p style="text-align: justify;">Esta forma tiene mucho que ver con como usarlo junto a la API. Pero claro, el caso es que WidPlay ama el HTML5, no queremos dar el video en flash!, ya que consume muchos recursos, cosa más que demostrada tanto en estudios como en experiencia. Así que la idea es que sea como sea tenemos que ponerlo en HTML5, y todo ello sin perder el absoluto control de las funcionalidades de API del reproductor.</p>
<p style="text-align: justify;">Pues bien, el truco era sencillo, pero son de esos pequeños detalles que te complican un par de horas la vida buscando por todos lados, pero sabiendo o teniendo la esperanza de que es posible hacerlo.</p>
<p style="text-align: justify;">Al añadir un iframe normal esto deja a Youtube la decisión de si mostrarlo con o sin HTML5, o en el mejor de los casos el usuario tiene que ir a Youtube para decir que quiere siempre los videos en HTML5, con lo que se guarda en una cookie la decisión y lo tendrá así. Pero eso es una mierda, lo suyo es que siempre cargue HTML5. Y el truco es solamente poner un atributo html5=1</p>
<pre style="text-align: left;">&lt;iframe frameborder="0" title="YouTube video player" type="text/html" height="390" width="640" src="http://www.youtube.com/embed/JW5meKfy3fY?controls=0&amp;html5=1&amp;enablejsapi=1&amp;origin=http://mysite.com"&gt;&lt;/iframe&gt;</pre>
<p style="text-align: justify;">Si os dais cuenta también hay un atributo que se llama controls, y que está a cero. Esto es para ocultar los controles del video (Los botones de play, volumen,…) y dejarlo igual que un embed Chrome típico. Después el atributo origin puedes ponerlo para darle a Youtube esa info para las típicas estadísticas que luego da el en la página del video.</p>
<p style="text-align: justify;">Y para poder usar la api puedes cargar el JS de la forma recomendada, asíncronamente:</p>
<pre>&lt;script&gt;
 var tag = document.createElement('script');
  tag.src = "http://www.youtube.com/player_api";
 var firstScriptTag = document.getElementsByTagName('script')[0];
  firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
  &lt;/script&gt;</pre>
<p>Después si quieres crear un player dinámicamente por JS puedes crear tu función como desees, incluso bindeando ya eventos. Algo similar a esto valdría:</p>
<pre>var player;
  function onYouTubePlayerAPIReady() {
 player = new YT.Player('player', {
 height: '390',
  width: '640',
  html5: 1,
  videoId: 'u1zgFlCw8Aw',</pre>
<pre>events: {
 'onReady': onPlayerReady,
 'onStateChange': onPlayerStateChange
 }</pre>
<pre>});
 }</pre>
<p style="text-align: justify;">Esta función lo que hace es que al detectar que la librería js que hemos puesto anteriormente para que cargase asíncronamente lo ha hecho correctamente creará un nuevo iframe con los atributos que hemos puesto, y creará dos eventos, con sus respectivas funciones callbacks. Una forma mucho más bonita y ordenada de poner el js <img src='http://blog.widplay.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> , aunque cada uno puede hacerlo como le venga mejor.</p>
<p style="text-align: justify;">Esta base desarrollándola más es lo que hemos hecho para la nueva adaptación a HTML5 del reproductor de música que estará operativo en la siguiente versión de WidPlay.</p>
<p><a href="http://www.widplay.org/tests/html5youtube.php" target="_blank">Podéis ver un ejemplo en funcionamiento aquí</a> (Usar la vista de codigo fuente para ver el js y reutilizarlo o aprenderlo)</p>
<p>Más info en <a href="https://code.google.com/intl/es-ES/apis/youtube/iframe_api_reference.html" target="_blank">la página para desarrolladores de Youtube</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.widplay.org/?feed=rss2&#038;p=83</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WidPlay Alpha sale a la luz</title>
		<link>http://blog.widplay.org/?p=77</link>
		<comments>http://blog.widplay.org/?p=77#comments</comments>
		<pubDate>Thu, 05 Jan 2012 07:45:55 +0000</pubDate>
		<dc:creator>Leif Ferreira</dc:creator>
				<category><![CDATA[Media / Prensa]]></category>
		<category><![CDATA[alpha]]></category>
		<category><![CDATA[roadmap]]></category>
		<category><![CDATA[widplay]]></category>

		<guid isPermaLink="false">http://blog.widplay.org/?p=77</guid>
		<description><![CDATA[&#160; 1 de Enero y WidPlay Alpha en la calle. Desde el minúto uno tras las campanadas, las cuentas de Alphatesters fueron activándose, y desde el minuto 2 muchos de estos empezaron ha volverse locos haciendo cosas! Tiene buena acojida, eso si, hay mucho que mejorar!! ¿Pero aun no sabes que es WidPlay? A ver [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p><a href="http://blog.widplay.org/wp-content/uploads/2012/01/esc2.png"><img class="aligncenter size-large wp-image-78" title="esc2" src="http://blog.widplay.org/wp-content/uploads/2012/01/esc2-1024x576.png" alt="" width="480" height="270" /></a></p>
<p style="text-align: justify;">1 de Enero y WidPlay Alpha en la calle. Desde el minúto uno tras las campanadas, las cuentas de Alphatesters fueron activándose, y desde el minuto 2 muchos de estos empezaron ha volverse locos haciendo cosas! <img src='http://blog.widplay.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  Tiene buena acojida, eso si, hay mucho que mejorar!!</p>
<p style="text-align: justify;">¿Pero aun no sabes que es WidPlay? A ver te comento&#8230; Alrededor de Junio de 2010 dejé (yo, Leif Ferreira) todo en lo que estaba metido, todos mis proyectos personales y profesionales para empezar algo propio, como hbaia hecho siempre hasta ese momento, pero esta vez algo mucho más radical. 1 año y 5 meses después tras solo dedicarme a esto casi 12 horas diarias muchas veces (La de noches y tardes delante de código&#8230; <img src='http://blog.widplay.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ) junto a Hector Zarco que se unió en Abril de 2011, WidPlay está lista en su versión Alpha. La hemos querido llamar Alpha y no Beta por que va a ser testeada por un círculo de usuarios muy reducido bajo una invitación muy controlada, más que nada para hacer piña entre unos cuantos dispuestos ha hacer que quede algo útil para el resto.</p>
<p style="text-align: justify;">WidPlay es una red social única (con dos sentidos: No hemos encontrado ninguna igual, y en una sola red social tienes casi todo lo que usas a diario).<a href="http://www.widplay.org/widplay.php" target="_blank"> Más Info.</a></p>
<p style="text-align: justify;">Aunque ya no es tan tan prototipo, con un diseño muy claro, presentable (aunque no soy diseñador me gusta mucho), es 100% funcional (Aunque errores lógicamente van a salir, es Alpha <img src='http://blog.widplay.org/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ). Creemos que muchas cosas se pueden mejorar no solo corregir fallos, de hecho a los pocos minutos de ponerla online ya están saliendo errores, pero es algo comprensible al montar todo entre un par de personas, y ni que hablar tiene de todas las cosas que faltan por sacar para la versión Beta que hay en el tintero y luego la pública&#8230; <img src='http://blog.widplay.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  ESTO VA SER MUY GRANDE!! WidPlay está desarrollada para que cuando demos el visto bueno esté en todos los idiomas, y todos los países, pero de momento solo España para salir al resto bien encaminados.</p>
<p style="text-align: justify;">Que las redes sociales han hecho el planeta más humano es innegable. Toda herramienta que ayuda a que cualquiera pueda acceder a la información que necesite sin estar manipulada, o aunque la esté poder contrastarla, opinar, a ver un documental para culturizarse sea de donde sea, a sentirse motivado con la música que le gusta para el día a día, a que las injusticias corran en segundos por todo internet,&#8230; hacen que el mundo sea mejor para todos. Ese ha sido otro motivo para dedicarle tanto tiempo a esta iniciativa, creia que podia aportar mi granito de arena, y aun lo creo. Esto tiene que ser mucho mejor.</p>
<p style="text-align: justify;">Nuestra tarea en esta fase será mejorar el código en las funcionalidades existentes, compactando el CORE y refactorizando, tanto en servidor como usuario, y solucionar errores que se vallan notificando incluso re definiendo algunas lineas de funcionalidad si fuese necesario para mejorar la experiencia del usuario.</p>
<p style="text-align: justify;">WidPlay está pensado para cumplir una función, no depender de tu ordenador para las funciones básicas que suele hacer una persona de mi edad en su ordenador (Música, películas, red social) y que no sea iendo de una página a otra. Que no tenga que instalarme en cada ordenador lo mismo o ir siempre a las mismas paginas, tenerlo todo en un mismo sitio y sin miles de anuncios de publicidad que me estaban volviendo loco. Seguro que no solo a mi y a mis amigos les es útil esto, así que tu también estás invitado a usarlo si lo encuentras de utilidad, eres libre, incluso si eres desarrollador libre de copiar para tus proyectos si estás haciendo algo grande y chulo <img src='http://blog.widplay.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p style="text-align: justify;">WidPlay ha sido desarrollado con cero euros de ayuda externa (Ni inversores, ni bancos,&#8230; Menudos son estos&#8230;), con proyectos anteriores propios ha sido subvencionado un año y medio de trabajo a duras penas <img src='http://blog.widplay.org/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> . Así que si te sirve de motivación y estás pensando en montarte tu también algo, deja de buscar ayuda y ponte a trabajar, no merecen la pena los inversores ni cosas similares <img src='http://blog.widplay.org/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> .</p>
<p style="text-align: justify;">A! Repito: si encuentras algún fallo gordo (Que esperemos que no, pero para excusarnos un poco), recordarte que WidPlay ha sido ideado, diseñado, estructurado, desarrollado, … en fin, en casi su totalidad, por 2 personas, que haya comprensión <img src='http://blog.widplay.org/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p style="text-align: justify;">Así que solo queda seguir programando y haciendo las cosas como hasta ahora durante los siguientes meses por que queda mucho por seguir haciendo.</p>
<p style="text-align: justify;">A todo esto solo añadir que en todo momento puedes aportar ideas aquí, o contactar <a href="http://widplay.com/tracker/info/www.widplay.org/contacto.php" rel="nofollow" target="_blank">www.widplay.org/contacto.php</a> , que si tienes una idea (por muy idealista que sea) y crees que puede encajar en WidPlay o en nuestra filosofia de hacer algo bueno y útil para los seres humanos, aquí nos tienes (No existen límites! Solo se necesitan ganas y programar mucho, equivocarse, reprogramar&#8230;. y al final sale algo bueno, es por cojones! <img src='http://blog.widplay.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> )</p>
<p style="text-align: justify;">Cabe destacar que estos primeros dias de WidPlay están siendo realmente productivos, la gente reporta fallos, se programa sin parar, interesados que ni conozco nos contactan, <a href="http://www.eureka-startups.com/101eust_2011/blog/2011/12/30/widplay-red-social-integracion-aplicaciones/" target="_blank">Nos publican en medios</a>&#8230; Buen camino!</p>
<p style="text-align: justify;">Además para los más curiosos hay un RodaMap público para leer:<br />
<a title="RoadMap WidPlay Alpha" href="http://widplay.com/tracker/info/widplay-alpha-roadmap_30" target="_blank">http://widplay.com/tracker/info/widplay-alpha-roadmap_30</a></p>
<p style="text-align: justify;">Señores y señoras&#8230;. WidPlay Alpha sale a la luz!</p>
<p><iframe src="http://player.vimeo.com/video/32020625?title=0&amp;byline=0&amp;portrait=0" frameborder="0" width="520" height="293"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.widplay.org/?feed=rss2&#038;p=77</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Ahorra en servidores: Aventura como SysAdmin</title>
		<link>http://blog.widplay.org/?p=58</link>
		<comments>http://blog.widplay.org/?p=58#comments</comments>
		<pubDate>Thu, 22 Dec 2011 21:59:51 +0000</pubDate>
		<dc:creator>Leif Ferreira</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[servidores]]></category>
		<category><![CDATA[alojamiento web]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[fail2ban]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[hosting barato]]></category>
		<category><![CDATA[kemsirve]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[ovh]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[proftpd]]></category>
		<category><![CDATA[servidor linux]]></category>
		<category><![CDATA[servidores dedicados]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.widplay.org/?p=58</guid>
		<description><![CDATA[22/12/2012 &#8211; Versión 1 Como prometi a la gente del foro comparto esta guía con todo aquel que pueda serle útil. Ahorrar dinero nos gusta a todos! , el problema es aprender lo necesario para ahorrárselo, y aunque está claro que vamos a cometer muchísimos errores, poco a poco lo iremos haciendo mejor si de verdad [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><em><strong>22/12/2012 &#8211; Versión 1</strong></em></p>
<p style="text-align: justify;"><a href="http://foros.ovh.es/showthread.php?p=59632" target="_blank">Como prometi a la gente del foro</a> comparto esta guía con todo aquel que pueda serle útil.</p>
<p style="text-align: justify;">Ahorrar dinero nos gusta a todos! <img src='http://blog.widplay.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> , el problema es aprender lo necesario para ahorrárselo, y aunque está claro que vamos a cometer muchísimos errores, poco a poco lo iremos haciendo mejor si de verdad le dedicamos tiempo.</p>
<p style="text-align: justify;">Empecé en el tema de las webs hace unos 5 años con los hostings de pago, primero  con hostings compartidos muy básicos, después dedicados administrados y ahora estoy en los dedicados sin administrar con casi cero conocimientos pero con muchas ganas!</p>
<p style="text-align: justify;">A lo mejor tú no quieres uno dedicado, no lo necesitas, entonces este no será un tutorial para ti, pero talvez ni sepas que necesitas, si es así lo primero que haremos será aclarar que existen 3 tipos de hosting normales:</p>
<p style="text-align: justify; padding-left: 30px;"><strong>Hostings Compartidos</strong> por unos 50€ al año o menos como los de banahosting.com (Servidores en USA baratos y con soporte por chat en español). Estos servidores ya llevan todo instalado para que simplemente subas tu web por FTP. Los hostings compartidos son ordenadores que se comparten con decenas o cientos de usuarios, compartiendo la memoria RAM, los recursos de la CPU,… etc con lo que para paginas “importantes” dejan que desear.</p>
<p style="text-align: justify; padding-left: 30px;"><strong>Servidores Virtuales (VPS)</strong> por unos 15€ al mes. Son servidores donde se garantizan unas condiciones mínimas, con acceso control sobre tu parte del servidor.</p>
<p style="text-align: justify; padding-left: 30px;"><strong>Servidores dedicados.</strong>  Esta es la opción que nos interesa a nosotros, sobre todo porque se trata de un ordenador al completo donde el 100% de los recursos del ordenador son para ti, donde puedes personalizarte todo. Para este tipo de servidores encontrarás dos opciones: Servidores administrados y sin administrar.</p>
<p style="text-align: justify; padding-left: 30px;">Los servidores administrados te lo dejan todo listo como en la opción del compartido, para que simplemente arrastres tu web por el FTP. Esa opción suele estar sobre los 120€/Mes con los ordenadores más básicos. Pero si te los buscas sin administrar puedes ahorrar mucho, aunque lógicamente hay que aventurarse en el mundo del SysAdmin, y para esto es este tutorial.</p>
<p style="text-align: justify;">WidPlay necesita una maquina normal, con un Apache, PHP y MYSQL. Poco más, que el servidor sea UTF8 de pies a cabeza, con algún plugin de PHP como CURL, el mod_rewritte del Apache y algunas cosas más secretas. Pues bien, tras rebuscar he encontrado la opción de Kemsirve.es. Son servidores dedicados muy baratos, pero claro, sin administrar. ¿El problema? No tengo ni idea de cómo preparar un servidor web, pero vamos, lo que viene siendo NI IDEA. En plan que no sé ni sobre que buscar en google, pero bueno empecemos por buscar “montar servidor linux”, es lo único que se con seguridad LINUX es mejor que Windows en tema de servidores. Esperemos no sea muy doloroso…</p>
<p style="text-align: justify;">Anteriormente pagaba 125 euros mensuales, en los últimos 2 años he gastado más de 3000 euros en alojamiento. Hacia esto porque quería el alojamiento listo sin preocuparme de nada, no tenía muchos conocimientos. Pero sabiendo algunas nociones sobre admin solo habría pagado 400 euros en esos 2 años y encima, para más recochineo y gracia del asunto, por un ordenador 3 veces mejor y que ni decir tiene que todos los conocimientos adquiridos habrían sido increíbles.</p>
<p style="text-align: justify;">Además de los quebraderos y problemas que tenia con el servidor dedicado, pese a ser administrado, hay que dar el paso por cuidar mi bolsillo, salud y autoestima <img src='http://blog.widplay.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p style="text-align: justify;">Se supone que para hacer estas cosas necesitas conocimiento de Linux… buscando por internet he encontrado algunos tutoriales que me he leído por encima…</p>
<p style="text-align: justify;">Sinceramente no se si esto saldrá bien o que peeero… Empecemos sin pensarlo un minuto!</p>
<p style="text-align: justify;">Una cosa que al menos es buena leerse para los que no sabemos la lógica de las carpetas de Linux <a href="http://www.forat.info/2009/02/18/%C2%BF-como-esta-organizado-gnulinux-por-dentro/">seria esta de Forat</a>. Es complicado memorizarlo, y aunque sea solo como apuntes, te queda más claro todo.</p>
<p style="text-align: justify;">Y por último en este capítulo defenderme en mis errores que puede que no sea la mejor forma de hacer las cosas, y que si encuentras algún error o forma mejor de hacerlo la compartas con todos nosotros. Que el único objetivo de hacer esta guía es por la cantidad de cosas que hay por internet (aparte de dispersas&#8230; que manda cojones), muchas no me han funcionado. Asi que espero que esta sea una buena guia para dejarte todo a punto y luego seguir investigando más.</p>
<h2 style="text-align: justify;">Paso 1: Adquisición del servidor</h2>
<p style="text-align: justify;">Tras búsquedas y recomendaciones al final yo personalmente me he decidido por los servidores de OVH, que tienen una gama llamada <a href="http://www.kemsirve.es">Kemsirve</a> algo desconocida pero realmente barata&#8230; conocida casi solo por los más entendidos. Yo no soy entendido en servidores, pero si en mi bolsillo, así que elijo esta <img src='http://blog.widplay.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p style="text-align: justify;">Antes que nada aclarar que con esto no te conviertes realmente en sysadmin,  o al menos no en un sysadmin como dios manda, ya que lo único que enseño aquí es lo más básico para ahorrarse dinero al montar un proyecto.  Para hacerte un sysadmin deberías dedicarle que menos que 6 meses, 12 horas diarias sin perdonar ningún día, leyendo tutoriales, manuales, haciendo pruebas,… ahí podrías empezar a llamarte sysadmin…. Así que, como ahorrarse un par de miles de euros en los primeros meses o años es clave para un proyecto, vamos a explicar cómo hacer ese primer pasó aunque sea de un modo básico.</p>
<p style="text-align: justify;">Vale, al lio!! Lo primero será contratar el servidor.  En mi caso he seleccionado la opción básica: Kemsirve 2G. Luego he seleccionado la opción Expertos: Distribución base. ¿Experto? ¿Yo? Jajaja, Con dos cojones y para adelante. Después la distribución Ubuntu Server  11.10… Aunque me han dicho que no es la mejor versión he decidido esta mas que nada por la cantidad de tutoriales que hay entorno a ella. Rellenamos datos de contacto del formulário… seleccionamos cuanto tiempo queremos el hosting… pagamos con la tarjeta de crédito, verificamos en el email… y al rato nos van llegando correos con los detalles de como van los procesos&#8230; Finalmente tendremos el server. Así que en líneas generales lo que vamos a necesitar es:</p>
<p style="text-align: justify; padding-left: 30px;">1. Servidor Apache2<br />
2. Soporte PHP5<br />
3. Soporte MySQL<br />
4. Servidor DNS Bind<br />
5. Servidor Correo Postfix</p>
<h2 style="text-align: justify;">Paso 2: Configuración básica</h2>
<p style="text-align: justify;">Una vez tengamos el aviso de que el servidor ya no lo han preparado, con los datos que nos han adjuntado, tenemos que acceder a ese ordenador. Para ello aclarar que aunque acojone un poco no vamos a tener el típico escritorio delante ni un panel de control via web ya preparado con todo&#8230;NO&#8230; y no hay que hecharse nunca atras&#8230; va a ser usando un programa similar en apariencia al MS-DOS, usaremos acceso por SSH. Para Windows podemos usar el programa PUTTY.</p>
<p style="text-align: justify;">Pero antes que nada sería conveniente hacer lo que comentan en <a href="http://mooontes.com/2009/04/12/configurar-un-servidor-dedicado-desde-cero-parte-1/">Moontes</a>. Me refiero a verificar que la ip que nos han proporcionado no está en ninguna lista oficial de baneados. Esto puede pasar por que el ordenador puede que lo haya tenido anteriormente otro usuario que lo usase para hacer cosas no permitas, o no bien vistas, y por mucho que haya sido formateado, la IP del ordenador es la misma con lo que el ordenador puede que no sea aceptado por destinatarios de email, motores de google,…</p>
<p style="text-align: justify;">Tras comprobar que está correcto (en nuestro caso todo bien pero supongo que si en tu caso algo ha salido problemático tendrás que contactar con OVH y que te den otro servidor), lo primero que vas a hacer es conectar con PUTTY, introduces la IP y puerto 22 (es el de SSH). Lo primero que te va a pedir es el usuario (root), y después la contraseña que te han asignado. Tras conectarte el servidor te da la bienvenida. Lo que tenemos ahora mismo delante es el acceso total a todo el servidor que has contratado, puedes hacer con él lo que quieras desde comandos, es un ordenador al completo tuyo.</p>
<p style="text-align: justify;">Un buen primer paso puede ser que verifiques que lo que te han instalado es lo que pediste:</p>
<pre style="text-align: justify;">uname -a</pre>
<p style="text-align: justify;">También podemos ver la distro que tenemos instalada  poniendo:</p>
<pre style="text-align: justify;">cat /etc/issue</pre>
<p style="text-align: justify;">Lo siguiente seria cambiar a una contraseña más personal que recuerdes fácilmente, así que pon:</p>
<pre style="text-align: justify;">passwd</pre>
<p style="text-align: justify;">Además, una medida de seguridad básica inicial buena es cambiar el puerto predeterminado de escucha del ssh. Uno que queramos mayor de 1000 para no coincidir con otros servicios, para ello poner lo siguiente y editar la línea que pone Port 22 a Port XXXX</p>
<pre style="text-align: justify;">nano /etc/ssh/sshd_config</pre>
<p style="text-align: justify;">Y reiniciamos el servicio de SSH:</p>
<pre style="text-align: justify;">service ssh restart</pre>
<p style="text-align: justify;">Algo que yo me he impreso es <a href="http://usuarioubuntu.wordpress.com/2009/05/26/comandos-basicos-muy-basicos-para-no-perderse-en-la-consola/">esta hoja</a> para empezar a memorizar comandos:</p>
<p style="text-align: justify;">Ahora sería bueno comprobar si hay actualizaciones o cosas nuevas que actualizar en tu sistema. Lo que más me ha gustado de Linux es esto exactamente. Existen una especie de listas con programas y donde se descargan que están públicas en internet (Se llaman repositorios). Nuestro linux tiene establecido que listas usa y solamente con poner el nombre del programa se nos instala de la siguiente manera:</p>
<pre style="text-align: justify;">aptitude install nombre_del_programa</pre>
<p style="text-align: justify;">Con lo que para actualizar sabe que cosas tienes en tu ordenador y donde mirar si hay novedades. Así que ponemos los siguientes dos comandos uno tras otro:</p>
<pre style="text-align: justify;">aptitude update
aptitude dist-upgrade</pre>
<p style="text-align: justify;">Se te actualizará todo lo necesario. Pues bien, ya tendremos el ordenador listo para empezar a prepararlo como servidor web.</p>
<h2 style="text-align: justify;">Paso 3: Instalando programas básicos</h2>
<p style="text-align: justify;">Antes de preparar esta guía me he cargado el servidor 6 veces, he tenido que formatear y instalar todo muchas veces, y eso me da ventaja de averiguar algunas cosas necesarias para el correcto funcionamiento. Al iniciar WidPlay ya en el nuevo servidor me di cuenta de que las imágenes no las estaba tratando bien, algunas funciones para trabajar con ellas no estaban funcionando. Tras investigar me di cuenta que las librerías GD que instalé al instalar php5 no estaban actualizadas&#8230; pequeño FAIL&#8230; Para que se instale la versión adecuada tenemos que hacer lo siguiente:</p>
<p style="text-align: justify;">Lo primero será añadir nuevos repositorios a los oficiales:</p>
<pre>nano /etc/apt/sources.list</pre>
<p style="text-align: justify;">y añadimos esto al principio:</p>
<pre>deb http://packages.dotdeb.org stable all
 deb-src http://packages.dotdeb.org stable all</pre>
<p style="text-align: justify;">Actualizamos repositorios</p>
<pre>apt-get update</pre>
<p style="text-align: justify;">Entonces ahora ya podemos instalar la librería GD y cogerá la última versión que existe.</p>
<p style="text-align: justify;">Antes que nada instalaremos Apache2, que es la plataforma sobre la que más tarde correrá PHP y MYSQL, la que le dá al ordenador su característica de servidor web. Después instalaremos MYSQL y después el PHP. Para ello ponemos lo siguiente uno a uno:</p>
<pre>aptitude install apache2
aptitude install mysql-server mysql-client libmysqlclient15-dev
aptitude install php5-common php5-cli php5-mcrypt libapache2-mod-php5 php5-mysql php5-gd</pre>
<p style="text-align: justify;">Si te das cuenta en la línea del MYSQL y el PHP se ponen muchas más cosas, eso es porque al mismo tiempo dices que se instalen paquetes típicos que suelen venir bien.</p>
<p style="text-align: justify;">Puede que el servidor te diga que ya estaba un paquete instalado y que si quieres sobrescribirlo, puedes decir que sí.</p>
<p style="text-align: justify;">Puede verse más inflo de este paso en la <a href="http://www.howtoforge.com/forums/showthread.php?t=42020">página de Forat</a></p>
<h4 style="text-align: justify;"></h4>
<h4 style="text-align: justify;">Usuarios en mysql</h4>
<p>Es lógico que un solo usuario no va a administrar todas las bases de datos, seguramente para cada proyecto se usará un usuario, e incluso a veces usuarios con determinados permisos donde terceros puedan usar nuestras bases de datos.</p>
<p>En mysql, tanto para conectar, como para el servidor de correo que instalaremos más adelante será bueno crear unos usuarios con los que conectarse. En estos dos enlaces se explica más información sobre el asunto:</p>
<p><a href="http://luauf.com/2008/06/26/crear-usuario-y-asignar-permisos-en-mysql/" target="_blank">http://luauf.com/2008/06/26/crear-usuario-y-asignar-permisos-en-mysql/</a><br />
<a href="http://dev.mysql.com/doc/refman/5.0/es/adding-users.html" target="_blank">http://dev.mysql.com/doc/refman/5.0/es/adding-users.html</a></p>
<p>A continuación te pongo una consulta sql para crear un usuario (Hay que cambiar baseDatos, usuario, password):<br />
GRANT ALL PRIVILEGES ON baseDatos.* TO &#8216;usuario&#8217;@'localhost&#8217; IDENTIFIED BY &#8216;password&#8217; WITH GRANT OPTION;</p>
<p><a href="http://drupal.org.es/node/45" target="_blank">Aquí explican</a> más detenidamente la estructura de una consulta para permisos:</p>
<h4 style="text-align: justify;"></h4>
<h4 style="text-align: justify;">phpmyadmin</h4>
<p style="text-align: justify;">Nosotros como hemos visto arriba usamos MySql, Ahora lo suyo es instalar un software que nos permite administrar las bases dedatos gráficamente vía web:</p>
<pre>aptitude install phpmyadmin</pre>
<p style="text-align: justify;">Selecciona Apache como tipo de servidor cuando te lo pida, después en la siguiente pregunta selecciona YES.</p>
<p style="text-align: justify;">Por temas de seguridad al igual que hemos hecho con el puerto ssh, una buena medida de seguridad sería cambian la forma predeterminada de abrir el phpmyadmin (normalmente se abre poniendo xxx.xxx.xxx.xxx/phpmyadmin) a por ejemplo  xxx.xxx.xxx.xxx/base-de-datos, por poner un ejemplo… Así que para editar el fichero de configuración de urls para el apache abre:</p>
<pre style="text-align: justify;">nano /etc/apache2/sites-enabled/000-default</pre>
<p style="text-align: justify;">Si está la siguiente línea cámbiala si no añádela al final del fichero antes de &lt;/VirtualHost&gt;:</p>
<pre style="text-align: justify;">Alias /phpmyadmin /usr/share/phpmyadmin</pre>
<p style="text-align: justify;">Cambiar a:</p>
<pre style="text-align: justify;">Alias /base-de-datos /usr/share/phpmyadmin</pre>
<p style="text-align: justify;">Luego solo toca reiniciar el servidor de apache:</p>
<pre style="text-align: justify;">/etc/init.d/apache2 restart</pre>
<h2 style="text-align: justify;">Paso 4: Soporte FTP</h2>
<p style="text-align: justify;">Lógicamente necesitamos un método para subir los ficheros al hosting. Para ello se instala un servicio FTP. Luego con un programa como <a href="http://filezilla-project.org/">Filezilla</a> (Que es gratuito y muy sencillo y completo) podremos subir nuestra web. Nosotros vamos a instalar el servidor Proftpd. Además también vamos necesitar Openssl para crear conexiones cifradas, que normalmente debe haberse instalado ya como dependencia de programas anteriores, pero puedes ponerlo de todas formas (que si ya lo tienes no hará nada y simplemente lo omitirá tranquilo). Así que ponemos lo siguiente:</p>
<pre style="text-align: justify;">aptitude install proftpd openssl</pre>
<p>Cuando nos pida el tipo de configuración dejar independiente.</p>
<p>Vale ya tenemos servidor FTP, ¿Sencillo no? pero hay que configurarlo un poco.</p>
<p>De nuevo, por razones de seguridad lo  primero  será editar el fichero de configuración y personalizarlo también un poco:</p>
<pre>nano /etc/proftpd/proftpd.conf</pre>
<p>Yo lo que me voy a personalizar es el serverName para no dar pistas a crackers aparte de cambiarle el puerto a alguno mayor de 1000. Tb le voy a añadir  después de denyFilter:</p>
<pre>DefaultRoot ~
 ServerIdent on "FTP Server ready."
 AccessGrantMsg    "¡Bienvenido al FTP de WidPlay!"
 AccessDenyMsg    "¡Vete para tu casa, fuera!"</pre>
<p>Ahora vamos a crear un certificado ssl para el tls, así podremos conectar por ftp usando una conexión segura.</p>
<pre>mkdir /etc/proftpd/ssl</pre>
<p>Y creamos el certificado:</p>
<pre>openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem -keyout /etc/proftpd/ssl/proftpd.key.pem</pre>
<p>Nos pedirá que configuremos el certificado, lo primero el país: ES<br />
El estado o provincia: Valencia<br />
Localidad: Torrent<br />
Nombre de la organización: Widplay<br />
Seccion: Pagina web<br />
Tu nombre: Pues eso, tu nombre…<br />
Tu email: Lo mismo, tu email.</p>
<p>Ya está creado! Ahora queda habilitar el proftpd para que use el certificado, editamos el fichero de config:</p>
<pre>nano /etc/proftpd/proftpd.conf</pre>
<p>Y descimentamos la línea de  incluir el tls:</p>
<pre>Include /etc/proftpd/tls.conf</pre>
<p>Por último editamos el fichero del tls para que podamos conectar tanto sin tls como con tls, según decidamos y donde estemos. Lo mejor será guardarnos el fichero default que dan, más que nada como referencia, y crearnos uno nosotros:</p>
<pre>mv /etc/proftpd/tls.conf /etc/proftpd/tls.confORIGINAL</pre>
<p>Y ahora creamos el nuestro:</p>
<pre>nano /etc/proftpd/tls.conf</pre>
<p>Ahí pegamos lo siguiente:</p>
<pre>&lt;IfModule mod_tls.c&gt;
 TLSEngine                  on
 TLSLog                     /var/log/proftpd/tls.log
 TLSProtocol                SSLv23
 TLSOptions                 NoCertRequest AllowClientRenegotiations
 TLSRSACertificateFile      /etc/proftpd/ssl/proftpd.cert.pem
 TLSRSACertificateKeyFile   /etc/proftpd/ssl/proftpd.key.pem
 TLSVerifyClient            off
 TLSRequired                off
&lt;/IfModule&gt;</pre>
<p>La opción “TLSRequired off” Indica que no es exactamente necesario que conectemos mediante TLS. Si no que mediante una conexión normal también podemos.</p>
<p>Ya está. Reiniciamos el servidor FTP.</p>
<pre>/etc/init.d/proftpd restart</pre>
<p>&nbsp;</p>
<p style="text-align: justify;">Ahora cuando queramos conectar con Filezilla por ejemplo en la configuración del servidor que queremos conectar podemos seleccionar en Cifrado: Requiere FTP implícito sobre TLS (Si elegiste TLS Required ON) o  explicito si pusiste OFF que es lo que nosotros pusimos. Una captura sobre donde cambiar esta opción en el Filezilla:</p>
<p><img class="alignnone" src="http://blog.widplay.org/wp-content/uploads/2011/12/ftp.png" alt="" width="477" height="398" /></p>
<p>Ya está! Ya tenemos un servidor FTP razonablemente chulo!!<br />
Cada vez que queramos crear cuentas para nuevos FTP es muy simple. Otra de las cosas buenas de Linux es que al crear un usuario tiene cuentas en cosas como el ftp.</p>
<p>&nbsp;</p>
<h2>Paso 5: Configurando nuestro primer dominio</h2>
<p style="text-align: justify;">En Apache esto de ir creando dominios nuevos se les llama virtual hosts. Para ello Apache utiliza unos ficheros donde indica la configuración cara a apache de cada sitio.</p>
<p style="text-align: justify;">En la carpeta <em>/etc/apache/</em> hay dos directorios con los que se trabaja para este asunto: <em>sites-available</em> y <em>sites-enabled</em></p>
<p style="text-align: justify;">En la carpeta <em>sites-available</em> hay un fichero llamado <em>default</em> con un ejemplo básico de una configuración. Ese fichero podemos usarlo como template para cada dominio. Cuando lo configuremos solo hay que decirle que habilite ese dominio. Vamos allá.</p>
<p style="text-align: justify;">El primer paso será crear la zona donde guardar la web. Para no tener todo en la carpeta <em>/var/www/</em> (Que perfectamente podría estar, pero lo más normal es que vayas a tener diferentes webs en el servidor y teniendolo todo ahi seria un lio).</p>
<p style="text-align: justify;">Sigamos&#8230; hay que crear un usuario que gestionará  su web.  Así que imaginemos que queremos crear el dominio widplay.com y lo gestionará el usuario widplay</p>
<p style="text-align: justify;">Por  temas de seguridad creamos una Shell (Algo así como una licencia de cosas que puede hacer en Linux ese usuario, está claro que es un usuario manejado por nosotros, pero por si queremos darle hosting a otros. <a href="http://bibliaubuntu.a.wiki-site.com/index.php/%C2%BFQu%C3%A9_es_una_Shell%3F" target="_blank">¿Que es una Shell?</a> La shell que vamos a darle tendrá como valor <em>/bin/false</em>, de esta forma no podrá crackearla para coger todos los permisos del sistema.</p>
<p>Creamos ese tipo de licencia editando el fichero:</p>
<pre style="text-align: justify;">nano /etc/shells</pre>
<p style="text-align: justify;">Añadimos al final:</p>
<pre style="text-align: justify;">/bin/false</pre>
<p style="text-align: justify;">Ahora creamos el usuario asociándolo a esa Shell</p>
<pre style="text-align: justify;">adduser widplay</pre>
<p style="text-align: justify;">Pon el password, te creará una carpeta, ponle info detallada al usuario si quieres según te valla pidiendo. Yo lo he dejado todo vacio, presionando solo intro.</p>
<p>Ahora ponle la Shell que habíamos creado</p>
<pre style="text-align: justify;">chsh -s /bin/false widplay</pre>
<p style="text-align: justify;">Aunque se le haya creado automáticamente una carpeta, no tiene permisos automáticamente de poder hacer ahí lo que desee, así que tenemos que decir que esa carpeta tendrá como dueño al usuario que hemos creado, para que pueda el subir ficheros, crear carpetas,…</p>
<pre style="text-align: justify;">chown -R widplay /home/widplay/</pre>
<p style="text-align: justify;">Tras hacer esto se habrá creado una carpeta en <em>/home/</em> llamada widplay. Es la carpeta de las cosas del usuario. Allí crearemos una carpeta que nos sirva para albergar el contenido, puede llamarse como se quiera, yo le llamaré <em>public_html</em> por los estándares que he visto en otros hostings:</p>
<pre style="text-align: justify;">mkdir /home/widplay/public_html</pre>
<p style="text-align: justify;">A continuación, debemos asegurarnos de que nuestro directorio web public_html es parte del grupo www-data de Apache:</p>
<pre style="text-align: justify;">usermod -a -G www-data widplay
chgrp -R www-data /home/widplay/public_html</pre>
<p style="text-align: justify;">Ahora se le tiene que decir al apache que cuando se pida por el dominio widplay.com  se cargue el contenido de la carpeta <em>/home/widplay/public_html/</em>. Con lo que hacemos esto:</p>
<p style="text-align: justify;"><em>cd /etc/apache2/sites-available/</em><br />
<em>nano widplay.com</em></p>
<p style="text-align: justify;">Puedes ver el ejemplo que yo he usado aquí:</p>
<pre style="text-align: justify;">&lt;VirtualHost *:80&gt;

        # Valores generales del proyecto
        ServerAdmin webmaster@widplay.com
        ServerName www.widplay.com
        ServerAlias widplay.com *.widplay.com

        DocumentRoot /home/widplay/public_html/

        # Para hacer un registro de errores
        LogLevel warn
        ErrorLog  /home/widplay/logs/error.log
        CustomLog /home/widplay/logs/access.log combined

        # Correo
        Alias /squirrelmail /usr/share/squirrelmail

&lt;/VirtualHost&gt;</pre>
<p style="text-align: justify;">Y ahora como hemos comentado arriba solo queda habilitar el nuevo sitio con el comando a2ensite (para que te acuerdes este comando viene de acortar las palabras Avalable to enable site que es lo que quieres hacer):</p>
<pre style="text-align: justify;">a2ensite widplay.com</pre>
<p style="text-align: justify;">Ahora creamos las carpetas de logs que hemos asignado en las líneas:</p>
<pre style="text-align: justify;">ErrorLog  /home/widplay/logs/error.log
CustomLog /home/widplay/logs/access.log combined</pre>
<p style="text-align: justify;">Así que:</p>
<pre style="text-align: justify;">mkdir /home/widplay/logs/
touch /home/widplay/logs/error.log
touch /home/widplay/logs/access.log</pre>
<p style="text-align: justify;">Probamos que apache esté bien configurado:</p>
<pre style="text-align: justify;">apache2 -S</pre>
<p style="text-align: justify;">Y reiniciamos apache2:</p>
<pre style="text-align: justify;">/etc/init.d/apache2 restart</pre>
<p style="text-align: justify;">Aclarar que AllowOverride All  dentro de &lt;Directory &#8230;&gt;. es para poder usar los archivos .htaccess que se puede necesitar normalmente<br />
Para más info sobre esto buscar en google sobre “virtualhost en Ubuntu”.</p>
<p style="text-align: justify;"><strong><em>Atención</em>.</strong> Por algún motivo al poner apache2 –S me da un error (bad user name). Así que lo que hay que hacer es:</p>
<pre style="text-align: justify;">nano /etc/apache2/apache2.conf</pre>
<p style="text-align: justify;">Y modificar esto:</p>
<pre style="text-align: justify;">User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}</pre>
<p style="text-align: justify;">Por esto:</p>
<pre style="text-align: justify;">User www-data
Group www-data</pre>
<p style="text-align: justify;"><em><strong>Atención:</strong></em> Como nota propia tenia apuntado lo siguiente, tal vez a alguno os sirva también, así que lo publico. Tras trastear con el servidor me di cuenta que en el archivo hosts (/etc/hosts) puse (pensando que así se cambiaba el prompt del shell)  lo siguiente:</p>
<pre style="text-align: justify;">91.121.12.95    widplay.com widplay</pre>
<p style="text-align: justify;">Con esto al parecer, al tratarse del archivo host, donde le indicas a que ip ir cuando ponen algo, le estaba diciendo que al poner widplay.com fuese a la ip (la mía del servidor). Me estaba volviendo loco por que tras configurar el virtualhost y el apache no conseguía entrar con widplay.com (sin las www) a la carpeta que le estaba indicando en el directorio sites-enabled del apache. Este era el problema parece ser.</p>
<h2 style="text-align: justify;">Paso 6: Servidor DNS</h2>
<p style="text-align: justify;">Vale ahora le toca a uno de los asuntos que más me han costado. Por un lado no tenía mucha idea de que son las DNS. Sabia lo justo, que es la dirección que se pone en el dominio para que cuando alguien entra a tu dominio sepa a que servidor ir.</p>
<p style="text-align: justify;">Tras muchas horas de prueba/error no sabiendo que configurar, leyendo muchos tutos, y lo malo de este tema es que si cambias las DNS en el dominio hasta que se replican por todo el mundo pueden tardar hasta 48 horas(Esto pasa por que en todas las bases de datos oficiales que hay por el mundo se tienen que replicar esos nuevos datos), al final he conseguido hacerlo y no era tan difícil.</p>
<p style="text-align: justify;">La lógica de este asunto no es muy complicada: Imaginemos la empresa WidPlay y su web. Cuando un usuario pone www.widplay.com mira en las bases de datos internacionales de dominios las DNS que se le han configurado, entonces el navegador  sabe a que servidor ir para mostrar la info. Pero claro, en el servidor de WidPlay hay que configurar que cuando alguien llega preguntando por widplay.com le tiene que mostrar la carpeta X. Con lo que es necesario que ambas partes estén configuradas: tanto el dominio, como el servidor.</p>
<p style="text-align: justify;">Básicamente se pueden configurar de dos modos:  1. Totalmente a mano, 2. Con algún panel de control instalado tipo Webmin, que es mas visual. Nosotros elegiremos la opción manual que una vez simplificado como lo voy a poner no es para tanto.</p>
<p style="text-align: justify;">Lo primero que tenemos que tener claro es cuáles son nuestras DNS, como hemos contratado un hosting dedicado en OVH ellos te proporcionan una segunda DNS (<a href="https://www.ovh.es/servidores_dedicados/dns_secundario.xml" target="_blank">https://www.ovh.es/servidores_dedicados/dns_secundario.xml</a>)</p>
<p style="text-align: justify;">Con lo que sabiendo que nuestra maquina es ks23280.kimsufi.com (Usando uname –a en la terminal nos lo dirá) las DNS son:</p>
<pre style="text-align: justify;">DNS Primaria: ks23280.kimsufi.com
DNS Secundaria: ns.kimsufi.com
Nuestra IP del server es: 91.121.12.95</pre>
<p style="text-align: justify;">Vale, ahora empecemos.</p>
<p style="text-align: justify;">Nosotros tenemos comprado el dominio en domainsite.com, con lo que ponemos allí las DNS al dominio,  recuerda que hacen efecto los cambios de entre 24H hasta 48H. Puedes ir mirando de vez en cuando un whois a ver que DNS devuelve, de nuevo la magia de Linux, pones en el terminal:</p>
<pre style="text-align: justify;">whois widplay.com</pre>
<p style="text-align: justify;">y te muestra todo.</p>
<p style="text-align: justify;">Mientras esto va haciendo efecto podemos ir configurando el servidor.</p>
<p><strong>Empecemos</strong></p>
<p style="text-align: justify;">Lo primero que hay que  editar es el fichero resolv.conf:</p>
<pre>nano /etc/resolv.conf</pre>
<p style="text-align: justify;">Y añadimos que cuando buscan widplay.com use las DNS primaria y secundaria (Hay que poner la IP, la IP de ns.kimsufi.com es  213.251.188.140):</p>
<pre>domain widplay.com
search widplay.com
nameserver 127.0.0.1
nameserver 213.251.188.140</pre>
<p style="text-align: justify;">Luego editamos el fichero named.conf.local y quitar lo que haya.</p>
<pre>nano /etc/bind/named.conf.local</pre>
<p style="text-align: justify;">En él tiene que quedar esto, pero lógicamente personalizado también a tu dominio.</p>
<pre>//
 // Fichero de configuracion
 //</pre>
<pre>// La DNS primaria (NOSE SI HACE FALTA)
 zone "ns1.widplay.com" {
 type master;
 file "/etc/bind/ns1.widplay.com";
 allow-transfer {91.121.12.95; }; // Tu segunda IP
 };
 // La dns secundaria (NO SE SI HACE FALTA)
 zone "ns2.widplay.com" {
 type master;
 file "/etc/bind/ns2.widplay.com";
 };
 // La zona inversa, se usan los tres primeros bloques de la ip pero invirtiendo su sentido y poniendo al final in-addr.arpa
 zone "91.in-addr.arpa" {
 type master;
 file "/etc/bind/pri.91.in-addr.arpa";
 };
 // La zona del dominio
 zone "widplay.com" {
 type master;
 file "/etc/bind/pri.widplay.com";
 };</pre>
<p style="text-align: justify;">Guardamos.</p>
<p style="text-align: justify;">Lo más importante aquí, o lo que más extraño puede resultar es esto: <strong><em>12.121.91.in-addr.arpa</em></strong> Eso es para que cuando alguien entra poniendo la IP (Cosa que hacen algunos programas) sepa llegar igualmente. Para sacar eso personalizándolo con tu proyecto no es más que coger tu IP e invertir el orden de los tres primeros grupos. Ejemplo con la IP de WidPlay:</p>
<p style="text-align: justify;">91.121.12.95 -&gt; Se convierte en -&gt; 95.12.121</p>
<p style="text-align: justify;">Ahora tenemos que crear en la carpeta <em>/etc/bind/</em> cada uno  de los ficheros que corresponden a cada una de las zonas a las que nombra este registro que hemos guardado, es decir:</p>
<p style="text-align: justify; padding-left: 30px;">ns1.widplay.com<br />
ns2.widplay.com<br />
95.in-addr.arpa<br />
pri.widplay.com (En estas ultima aun no se por que en el ejemplo añade el atributo file redirigiendolo al fichero de la zona).</p>
<p style="text-align: justify;">Con lo que ponemos lo siguiente:</p>
<pre style="text-align: justify;">cd /etc/bind/</pre>
<p style="text-align: justify;">La estructura de estos ficheros que vamos a crear es siempre la misma, empecemos por el primero:</p>
<pre style="text-align: justify;">nano pri.widplay.com</pre>
<p style="text-align: justify;">Y pones en ese fichero lo siguiente, y guardas:</p>
<pre style="text-align: justify;">$TTL    86400
@   IN  SOA widplay.com. root.widplay.com. (
         2011111803     ; Serial
              28800     ; Refresh
               7200     ; Retry
             604800     ; Expire
              86400 )   ; Negative Cache TTL

@                    IN      NS          ks23280.kimsufi.com.
@                    IN      NS          ns.kimsufi.com.
@                    IN      MX      0   widplay.com.
@                    IN      A           91.121.12.95
                     IN      A           91.121.12.95
mail                 IN      A           91.121.12.95
www                  IN      A           91.121.12.95
widplay              IN      CNAME       widplay.com.
widplay.com.                 TXT         "v=spf1 a mx ~all"
widplay.com.                 TXT         "v=spf1 a -all"</pre>
<pre style="text-align: justify;">nano pri.95.in-addr.arpa</pre>
<p style="text-align: justify;">Y al igual que antes ponemos en ese fichero</p>
<pre style="text-align: justify;">$ttl 86400
@   IN  SOA widplay.com. root.widplay.com. (
            2011111803     ; Serial
            28800     ; Refresh
            7200     ; Retry
            604800     ; Expire
            86400 )   ; Negative Cache TTL

@               IN      NS       ks23280.kimsufi.com.
@               IN      NS       ns.kimsufi.com.
95.12.121       IN      PTR      widplay.com.</pre>
<p style="text-align: justify;">Un comando interesante para ver si tienen errores en las zonas creadas es:  named-checkzone dominio.com ruta.de.la.zona – Ejemplo: <strong><em>named-checkzone widplay.com pri.widplay.com</em></strong></p>
<p style="text-align: justify;">Una web para comprobar errores de dns: <a href="http://www.intodns.com/widplay.com">http://www.intodns.com/widplay.com</a><br />
También podemos usar apache2 –S para sacar los sitios activados en apache.<br />
Para desactivar sitios de apache: <strong><em>a2dissite default</em></strong></p>
<p style="text-align: justify;"><strong>¡Importante!</strong> También tenemos que acceder al fichero de configuración /etc/bind/named.conf o bien /etc/bind/named.conf.options , los cuales podemos editar, haciendo click en “Edit Config File”, situado en el menú principal. Una vez estemos dentro y si aparece lo siguiente:</p>
<pre style="text-align: justify;">nano /etc/bind/named.conf.options</pre>
<p style="text-align: justify;">Código:</p>
<pre style="text-align: justify;">listen-on { 127.0.0.1; };</pre>
<p style="text-align: justify;">Debemos comentarlo de esta manera:</p>
<pre style="text-align: justify;">//listen-on { 127.0.0.1; };</pre>
<p style="text-align: justify;">Finalmente reiniciamos el servicio BIND</p>
<pre style="text-align: justify;">/etc/init.d/bind9 force-reload</pre>
<p style="text-align: justify;">Para comprobar que va correctamente ponemos lo siguiente:</p>
<pre style="text-align: justify;">dig @91.121.12.95 widplay.com</pre>
<p style="text-align: justify;">Y reiniciamos el apache</p>
<pre style="text-align: justify;">/etc/init.d/apache2 restart</pre>
<p style="text-align: justify;">Enlaces para contrastar información:<br />
<a href="http://foros.ovh.es/showthread.php?t=7433" target="_blank">http://foros.ovh.es/showthread.php?t=7433</a><br />
<a href="http://foros.ovh.es/showthread.php?t=4588" target="_blank">http://foros.ovh.es/showthread.php?t=4588</a><br />
<a href="http://www.itimag.com/servidores/como-configurar-el-servidor-dns-junto-a-un-dominio.html" target="_blank">http://www.itimag.com/servidores/como-configurar-el-servidor-dns-junto-a-un-dominio.html</a><br />
<a href="http://www.marblestation.com/?p=543" target="_blank">http://www.marblestation.com/?p=543</a></p>
<p>Enlaces de ayuda<br />
Aquí se explica que OVH da un servidor DNS para todos sus servidores:<br />
<a href="https://www.ovh.es/servidores_dedicados/dns_secundario.xml" target="_blank">https://www.ovh.es/servidores_dedicados/dns_secundario.xml</a></p>
<p style="text-align: justify;">Para ver si los cambios DNS se han efectuado puedes ir consultando el WHOIS del dominio.<br />
<a href="http://whois.domaintools.com/" target="_blank">http://whois.domaintools.com/</a></p>
<p>Más info:<br />
<a href="http://www.itimag.com/servidores/como-configurar-el-servidor-dns-junto-a-un-dominio.html" target="_blank">http://www.itimag.com/servidores/como-configurar-el-servidor-dns-junto-a-un-dominio.html</a></p>
<pre style="text-align: justify;">sudo /etc/resolv.conf</pre>
<p style="text-align: justify;">Como asignar 2 Ips a un ordenador para usar 2 nameserver en un mismo hosting:<br />
<a href="http://www.itimag.com/servidores/dos-2-ip-en-un-mismo-equipo-o-servidor.html" target="_blank">http://www.itimag.com/servidores/dos-2-ip-en-un-mismo-equipo-o-servidor.html</a></p>
<h2 style="text-align: justify;">Paso 7: Codificación</h2>
<p><strong>Codificación del sistema operativo</strong></p>
<p style="text-align: justify;">Codificación,…. Maldita codificación…. ¿Hay algo en el desarrollo que pueda molestar más? Seguramente si <img src='http://blog.widplay.org/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> , pero esto sin duda es una de las cosas más molestas.</p>
<p style="text-align: justify;">Una de mis principales necesidades en cuanto a servidor, más que nada porque en desarrollo lo hacemos todo bajo codificación UTF-8, era tener el servidor en UTF-8 de pies a cabeza. Solo los servidores dedicados y virtuales dejan modificar el my.cnf para indicar que lo queremos todo en UTF-8.</p>
<p style="text-align: justify;">Debido a las necesidades de WidPlay, queremos que sea un proyecto mundial, las cosas van a estar en muchísimos idiomas, con lo que no cabe la posibilidad que en los textos puedan salir los típicos cuadritos, interrogantes, rombos,… ni pensarlo, así que el servidor tiene que ser UTF 8 de pies a cabeza.</p>
<p style="text-align: justify;">El servidor que me han entregado en OVH al parecer da problemas, pero siguiendo <a href="http://www.davidsuarez.es/2010/03/problema-de-codificacion-de-tildes-enes-y-otros-caracteres-en-ubuntu/ " target="_blank">este tutorial</a> se han solventado. A mi solo con el segundo punto me ha sido suficiente, ya que al parecer lo único que faltaba era reconfigurar:</p>
<pre>dpkg-reconfigure locales</pre>
<p style="text-align: justify;"><strong>Codificación de Apache2</strong></p>
<p style="text-align: justify;">Como se comenta <a href="http://www.guia-ubuntu.org/index.php?title=Servidor_web#Habilitar_PHP_para_el_servidor" target="_blank">aquí</a>, para permitir los acentos en nuestras páginas, debemos asegurarnos que la siguiente línea aparezca des comentada aquí:</p>
<pre>nano /etc/apache2/conf.d/charset</pre>
<pre>AddDefaultCharset       UTF-8</pre>
<p style="text-align: justify;">Una vez efectuado algún cambio de las configuraciones es conveniente resetear el servidor Apache, para ello, en una consola escribimos:</p>
<pre>/etc/init.d/apache2 restart</pre>
<p style="text-align: justify;"><a href="http://www.amadourias.com/?p=117" target="_blank">Más info</a>, y como dice ahí Armando, UTF-8 recuerda usar URF-8 siempre: Sistema operativo, IDE’s de programación, servidores, bases de datos. <a href="http://foros.ovh.es/showthread.php?p=58726#post58726" target="_blank">Aquí se explica la configuración en el IDE</a>.</p>
<p style="text-align: justify;"><strong>Codificación MYSQL</strong></p>
<p style="text-align: justify;">Si tras configurar lo anterior tenemos problemas de codificación en nuestra web y notas que es unicamente en los datos que vienen desde la base de datos, seguramente sea por que la base de datos tiene otra configuración. Sería bueno que leyeses <a href="http://www.pedroventura.com/blog_programacion/php/problemas-codificacion-web-configurar-codificacion-utf8-php-mysql-y-html/" target="_blank">el siguiente tutorial de Pedro Ventura</a> que a mí me ha salvado la vida casi literalmente más de una vez.</p>
<p style="text-align: justify;">El my.cnf tiene la configuración de MYSQL, y en nuestro servidor estaba en <em>etc/mysql/my.cnf</em>, así que solo poner:</p>
<pre style="text-align: justify;">nano /etc/mysql/my.cnf</pre>
<p style="text-align: justify;">Aquí poner después de <em>[mysqld]</em> estas líneas:</p>
<pre style="text-align: justify;">init_connect='SET NAMES utf8'
 #default-character-set=utf8
 character-set-server=utf8
 collation-server=utf8_general_ci
 skip-character-set-client-handshake</pre>
<p style="text-align: justify;">Ahora solo falta reiniciar el servicio de MYSQL:</p>
<pre style="text-align: justify;">/etc/init.d/mysql restart</pre>
<h2 style="text-align: justify;">Paso 8: Otros detalles importantes</h2>
<p style="text-align: justify;"><strong>Descomprimir en el servidor</strong></p>
<p style="text-align: justify;">La mejor forma de subir un gran proyecto a un servidor es comprimir toda la carpeta y subirla por el FTP, no es por el espacio, aunque una carpeta comprimida ocupase 100mb y los ficheros sueltos 25mb (Lo sé, es absolutamente imposible pero por poner un ejemplo radical), subiría mas rápido los 100mb, por que por el simple hecho de que ir fichero a fichero, estableciendo la conexión, pidiendo permisos,… se tarda más tiempo que la transferencia en si…</p>
<p style="text-align: justify;">Mi fichero era un rar de 120mb, lo he subido pero necesitaba descomprimirlo, así que he instalado el unrar:</p>
<pre style="text-align: justify;">aptitude install unrar</pre>
<p style="text-align: justify;">Después solamente hemos ido a la carpeta del fichero y hemos descomprimido:</p>
<pre style="text-align: justify;">unrar -x fichero.rar</pre>
<p style="text-align: justify;">o</p>
<pre style="text-align: justify;">unrar x fichero.rar</pre>
<p style="text-align: justify;">Hay más información sobre las descompresiones rar <a href="https://tuxpepino.wordpress.com/2007/06/14/tip-comprimir-y-descomprimir-ficheros-rar-en-ubuntu-linux/" target="_blank">aquí</a>.</p>
<p style="text-align: justify;">Tras subir todo y descomprimir, seguramente (y aun no se por que no se crean esos permisos) esas carpetas nuevas no tienen asociado como dueño a nuestro usuario (widplay) así que volvemos a poner en la consola:</p>
<pre style="text-align: justify;">chown -R widplay /home/widplay/</pre>
<p style="text-align: justify;">Aunque seguramente hay alguna forma de decírselo que lo haga automáticamente.</p>
<p><strong>Mod Rewritte</strong></p>
<p style="text-align: justify;">Para permitir usar urls amigables es necesario instalar o activar un mod de apache. <a href="http://nideaderedes.urlansoft.com/2007/04/06/instalar-el-modulo-mod_rewrite-en-ubuntu/" target="_blank">Este tutorial sencillo</a> está bien explicado para configurarlo.</p>
<p style="text-align: justify;"><strong>cUrl</strong></p>
<p style="text-align: justify;">En WidPlay sobre todo para los bots que están cojiendo información en internet que son muchos necesitamos este mod. <a href="http://uvedobles.com/habilitar-curl-en-ubuntu/" target="_blank">En esta página</a> explican correctamente como ponerlo.</p>
<h2 style="text-align: justify;">Paso 9: Algo de seguridad</h2>
<p><strong>Fail2ban</strong></p>
<p style="text-align: justify;">Una de las recomendaciones que suelen comentar en muchos sitios es instalar algún sistema que pueda dejar fuera de juego ataques como los de fuerza bruta. La lógica de evitar esto supongo que a cualquiera se le puede pasar por la cabeza: Si intentas mas de X intentos en X minutos = a la puta calle!, pues si, esa es la más básica, pero hay muchas más. Y un programa que se encarga de esto es Fail2Ban.</p>
<p style="text-align: justify;">De nuevo la terminal nos alegra el día viendo lo fácil que es instalar algo:</p>
<pre style="text-align: justify;">aptitude install fail2ban</pre>
<p style="text-align: justify;">Una vez instalado vamos a configurarlo un poquito, aunque de por sí parece que viene muy bien,… solo el tiempo nos lo dirá. Así que seguimos con la buena práctica de guardar el fichero original y editar uno nuevo</p>
<pre style="text-align: justify;">mv /etc/fail2ban/jail.conf /etc/fail2ban/jail.confORIGINAL
nano /etc/fail2ban/jail.conf</pre>
<p style="text-align: justify;">En el ponemos lo que pone aquí:</p>
<pre style="text-align: justify;">[DEFAULT]

ignoreip = 127.0.0.1
bantime = 300
maxretry = 3
backend = polling
destemail = root@localhost
action = iptables[name=%(__name__)s, port=%(port)s]
mail-whois-lines[name=%(__name__)s, dest=%(destemail)s, logpath=%(logpath)s]

[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
findtime = 600

[apache]

enabled = true
port = http
filter = apache-auth
logpath = /var/log/apache*/*access.log
maxretry = 3
findtime = 600

[apache-noscript]
enabled = true
port = http
filter = apache-noscript
logpath = /var/log/apache*/*error.log
maxretry = 3
findtime = 600

[proftpd]
enabled = true
port = ftp
filter = proftpd
logpath = /var/log/proftpd/proftpd.log
maxretry = 3
findtime = 600</pre>
<p style="text-align: justify;">Y reiniciamos el servicio jail2ban</p>
<pre style="text-align: justify;">fail2ban-client stop
fail2ban-client start</pre>
<p style="text-align: justify;">Si queréis ver que tal andamos de bloqueos podéis ver el fichero fail2ban.log que se ubica en la ruta /var/log donde se guardan todos los bloqueos, ips, fecha y hora de quien nos está atacando. Más info en www.fail2ban.org</p>
<h2 style="text-align: justify;">Paso 10: Servidor de correo</h2>
<p style="text-align: justify;">Un servidor web sin servidor de correo cojea. Por ello vamos a instalar el servidor. Importante dejar en todos lados widplay.com como servidos en vez de mail.widplay.com</p>
<p><a href="http://www.pixelinx.com/2010/10/creating-a-mail-server-on-ubuntu-using-postfix-courier-ssltls-spamassassin-clamav-and-amavis/" target="_blank">En este tutorial</a> se explica de forma completa como preparar un servidor de correo completo con antivirus, antispam,&#8230;</p>
<p style="text-align: justify;"><strong>Crear cuenta</strong></p>
<p style="text-align: justify;">Imaginemos que queremos crear el correo no-reply@widplay.com (que lo voy a usar como primer correo para WidPlay para que mande los mensajes de los registros), lógicamente el dominio del mail será como se puede ver widplay.com. Además queremos crear otro buzón para que todos los correos que manden que no sean contempladas en otras redirecciones (aliases) valla a la dirección all@widplay.com, así que los datos que necesitamos son:<br />
<strong>Email que queremos:</strong> all@widplay.com<br />
<strong>Contraseña que usaremos:</strong> elPassword</p>
<p>Creamos un nuevo buzon para all@widplay.com</p>
<pre>INSERT INTO user VALUES ('all@widplay.com', ENCRYPT('elPassword'), 'WidPlay', NULL, 1);</pre>
<p style="text-align: justify;">Decimos que todos los correos vallan al buzon all@widplay.com</p>
<pre>INSERT INTO alias VALUES ('@widplay.com', 'all@widplay.com', 1);
INSERT INTO alias VALUES ('all@widplay.com', 'all@widplay.com', 1); // Es necesario crear un alias para esa mismo buzon</pre>
<p style="text-align: justify;">Si es nuestro primer email de ese dominio, creamos el dominio widplay.com</p>
<pre>INSERT INTO domain VALUES ('widplay.com', 'virtual:', 1);</pre>
<p style="text-align: justify;">Finalmente para que se creen las carpetas internas y que funcione el webmail necesitamos primero mandarle a esa cuenta un correo:</p>
<pre>mailx all@widplay.com</pre>
<h4 style="text-align: justify;">Extras para el correo</h4>
<p style="text-align: justify;"><strong>Qshape:</strong> Sacar la cola de emails por enviar:</p>
<pre style="text-align: justify;">qshape -s hold | head</pre>
<p style="text-align: justify;"><strong>Instalar mailgraph</strong>: Script par a ver gráficos de los emails que se Mandan:<br />
<a href="linuxsilo.net/articles/postfix-mysql.html" target="_blank">linuxsilo.net/articles/postfix-mysql.html</a> (Buscar apartado de mailgraph) Para entrar podemos usar: xxx.xxx.xxx.xxx/mailgraph/mailgraph.cgi</p>
<p><strong>Mandar mensaje desde la consola:</strong> <a href="http://support.microsoft.com/kb/153119/es" target="_blank">http://support.microsoft.com/kb/153119/es</a></p>
<p><strong>Ampliar la seguridad Fail2ban también en el correo:</strong><br />
Finalmente para mas seguridad en el servidor con los ataques de fuerza bruta a los puertos relacionados con el mail añadimos lo siguiente al jail2ban (<a href="http://scottlinux.com/2011/05/26/prevent-postfix-brute-force/" target="_blank">explicado aquí</a>)</p>
<pre>nano /etc/fail2ban/jail.conf</pre>
<p>&nbsp;</p>
<pre>[postfix]
enabled  = true
port     = smtp,ssmtp
filter   = postfix
logpath  = /var/log/mail.log
maxretry = 5

[sasl]
enabled  = true
port     = smtp,ssmtp,imap2,imap3,imaps,pop3,pop3s
filter   = sasl
logpath  = /var/log/mail.log</pre>
<p>&nbsp;</p>
<p>Y reiniciamos jail2ban</p>
<pre>/etc/init.d/fail2ban restart</pre>
<p>&nbsp;</p>
<h2>Paso 11: Estadísticas</h2>
<p style="text-align: justify;">Hay muchos sistemas para llevar el control de estadisticas de muchos aspectos de tu servidor. No obstante yo me he decantado por estos 3 que explico a continuación.</p>
<p style="text-align: justify;"><strong>Awstats:</strong></p>
<p>Puedes seguir <a href="http://www.forat.info/2008/07/25/servidor-en-linux-ubuntu-server-vol-8-estadisticas-web/" target="_blank">este tutorial de Forat</a>, pero atención a mi no me ha funcionado del todo, he tenido que modificar el último paso (donde pone: sudo nano /etc/apache2/apache2.conf Nos situamos al final del fichero e introducimos el siguiente código …) está mal o no consigo hacerlo como dice.</p>
<p>En vez de eso entrar al fichero /etc/apache2/sites-available/default con nano</p>
<pre>nano /etc/apache2/sites-available/default</pre>
<p>Y ponemos al final antes de &lt;/VirtualHost&gt;</p>
<pre>Alias /awstatscss /usr/share/doc/awstats/examples/css/
Alias /awstatsicons /usr/share/awstats/icon/
ScriptAlias /awstats/ /usr/lib/cgi-bin/
Alias /awstats-icon/ /usr/share/awstats/icon/</pre>
<p>Entonces ahora sí que reiniciamos apache para que surjan efectos:</p>
<pre>/etc/init.d/apache2 restart</pre>
<p>Para que se actualicen automáticamente editamos los crontabs</p>
<pre>nano /etc/crontab</pre>
<p>y al final ponemos</p>
<pre>30 * * * * /usr/lib/cgi-bin/awstats.pl -config=awstats.widplay.com.conf</pre>
<p>&nbsp;</p>
<p>Para evitar que de problemas de permisos para leer el fichero de logs tenemos que <a href="http://linux.koolsolutions.com/2009/10/26/tip-resolving-awstats-permission-denied-error-by-www-data-cron-job/" target="_blank">hacer lo que dicen aquí</a></p>
<p>A mí me ha bastado con poner:</p>
<pre>chmod 755 /var/log/apache2/</pre>
<p>Luego se entra a través de: http://xxx.xxx.xxxx.xxx/cgi-bin/awstats.pl</p>
<p><strong>Visitors:</strong><br />
<a href="http://www.hping.org/visitors/" target="_blank">http://www.hping.org/visitors/</a></p>
<p>Usamos aptitude para instalarlo</p>
<pre>aptitude -y <strong>install</strong> <strong>visitors</strong></pre>
<pre>mkdir /var/www/<strong>visitors</strong></pre>
<p>Luego cada vez que queramos generar un informe ponemos esto:</p>
<pre>visitors -A /var/log/apache2/access.log -o html &gt; /var/www/visitors/index.html</pre>
<p>Y accedemos poniendo http://xxx.xxx.xxx.xxx/visitors/</p>
<p>Lógicamente esto también podemos automatizarlo en un cron.<strong></strong></p>
<p>&nbsp;</p>
<p><strong>webalizer</strong><br />
Más info: <a href="http://mogaal.com/articulos/webalizer/webalizer.html" target="_blank">http://mogaal.com/articulos/webalizer/webalizer.html</a></p>
<p>Instalamos poniendo:</p>
<pre>aptitude install webalizer</pre>
<p>Editamos el siguiente fichero:</p>
<pre>nano /etc/webalizer/webalizer.conf</pre>
<p>Y modificamos o añadimos lo siguiente:</p>
<pre>LogFile /var/log/apache2/access.log
 OutputDir /var/www/webalizer
 Incremental yes
 ReportTitle Estidísticas de PAGINAWEB_NOMBRE
 Hostname URL_PAGINA</pre>
<p>&nbsp;</p>
<p>Cada vez que queramos generar un informe:</p>
<pre>webalizer -c /etc/webalizer.conf -d</pre>
<p>Lógicamente esto también puede automatizarse en un cron de manera sencilla. Para que esto se cree automáticamente cada día editamos el cron</p>
<pre>nano /etc/crontab</pre>
<p>y agregamos la siguiente línea:</p>
<pre>0 0 * * * /usr/bin/webalizer -c /etc/webalizer.conf -d</pre>
<p>&nbsp;</p>
<p><strong>Estadísticas similares a google analitycs: Piwik</strong><br />
A lo mejor no es muy Buena idea, ya que usa nuestras bases de datos y recursos, y mientras exista google analytics gratis puede ser mejor, pero sí que es cierto que nos hacemos dependientes de google, y si en el futuro lo hacen de pago o similar perderemos todo el historial de estadísticas, así que podemos poner los dos scripts js en el footer.</p>
<p><a href="http://www.forat.info/2010/04/05/servidor-web-2010-vol-8-estadisticas-web-open-source-con-piwik/" target="_blank">Aquí se explica</a> paso a paso como instalarlo.<strong></strong></p>
<p>&nbsp;</p>
<p><strong>Monitorizar el hardware</strong><br />
Puede ser interesante monitorizar que tal va la memoria o el hardware de un vistazo y a través del navegador, <a href="http://www.forat.info/2010/04/10/servidor-web-2010-vol-9-estadisticas-sobre-nuestro-hardware-con-phpsysinfo/" target="_blank">aquí se explica</a> como hacerlo.</p>
<p>&nbsp;</p>
<h2>Extras finales: Cosas útiles y pasos finales</h2>
<h4>Panel online de control del server: WEBMIN</h4>
<p style="text-align: justify;">Para facilitar muchas de las tareas de gestión del servidor hay diferentes paneles que podemos instalar. Nosotros vamos a utilizar webmin.</p>
<p style="text-align: justify;">Lo primero es instalarnos todo lo necesario:</p>
<pre style="text-align: justify;">aptitude install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions</pre>
<p style="text-align: justify;">Después nos aseguramos de estar en el dominio inicial del servidor poniendo solamente:</p>
<pre style="text-align: justify;">cd</pre>
<p style="text-align: justify;">Ahora miramos <a href="http://www.webmin.com/download.html" target="_blank">en la web oficial de webmin</a> cuál es la última versión para Ubuntu (Fíjate bien que coges la de UBUNTU). Ahora mismo es:</p>
<p style="text-align: justify;">http://prdownloads.sourceforge.net/webadmin/webmin_1.570_all.deb</p>
<p style="text-align: justify;">Así que ponemos en la terminal:</p>
<pre style="text-align: justify;">wget http://prdownloads.sourceforge.net/webadmin/webmin_1.570_all.deb</pre>
<p style="text-align: justify;">Ahora desempaquetaremos el web min:</p>
<pre style="text-align: justify;">sudo dpkg -i webmin-1.570.tar.gz</pre>
<p style="text-align: justify;">LISTO! Ya puedes entrar a través de https://tuip:10000</p>
<p style="text-align: justify;">Si, https, y si, puerto 10000. Te pedirá que confirmes el tema del certificado, y te logueas con tu nombre de usuario root. Para cambiar el idioma pulsas en Webmin -&gt; Webmin Configuration y luego en Languages.</p>
<h4 style="text-align: justify;">php.ini</h4>
<p style="text-align: justify;">Seguramente, al igual que nosotros en WidPlay, necesitarás aumentar el tamaño de ficheros que pueden subirte al servidor, para ello tienes que editar el fichero php.ini poniendo:</p>
<pre>nano /etc/php5/apache2/php.ini</pre>
<p style="text-align: justify;">Para WidPlay será necesario cambiar dos valores con lo que desees:</p>
<p style="padding-left: 30px; text-align: justify;">post_max_size<br />
upload_max_filesize</p>
<p style="text-align: justify;">También ponemos el timezone a España:</p>
<pre>date.timezone = "Europe/Madrid"
date.default_latitude = 40.416126
date.default_longitude = -3.696706</pre>
<h4 style="text-align: justify;">Permisos carpetas upload</h4>
<p style="text-align: justify;">Imaginemos que tenemos una carpeta llamada media donde queremos permitir que mediante un script php se puedan guardar fichero, por ejemplo un simple upload de imagenes. Tenemos que otorgar los permisos adecuados a esa carpeta, no podemos ponerle 777 para solucionarlo rápidamente por que es un tanto inseguro.</p>
<pre>sudo chmod -R 2755 /home/widplay/public_html/media/</pre>
<p style="text-align: justify;">Para las carpetas donde va a subirse material (Imágenes, videos, …. Cualquier cosa) se le tiene que otorgar permisos 2775. El 2 hace que sea permanente el permiso para los archivos creados en el futuro, el primer 7 da todos los permisos al usuario dueño del archivo, el segundo 7 da todos los permisos a los usuarios del grupo al cual pertenece el dueño (www-data de Apache) y el 5 indica permisos de lectura (r) y ejecución (x), pero no de escritura (w), para el resto del mundo.</p>
<h4 style="text-align: justify;">Redirigir desde el dominio con www a sin www.</h4>
<p style="text-align: justify;">Yo, por mis motivos, quiero que la url de la web sea http://widplay.com y no http://www.widplay.com, si tu también lo deseas puedes mirar <a href="http://sigt.net/archivo/to-www-or-not-www-para-que-tener-www-en-la-url.xhtml" target="_blank">este pequeño tutorial<br />
</a></p>
<h4 style="text-align: justify;">Programas interesantes</h4>
<p style="text-align: justify;">Despues de trastear con algunos programas para instalar en el servidor recomiendo estos 3.</p>
<p style="text-align: justify;"><strong>Midnight Comander</strong></p>
<p style="text-align: justify;">Un programa también bueno es el midnigh commander, un programa que te permite visualmente navegar por los directorios y el aptitude.</p>
<pre>aptitude install mc</pre>
<p style="text-align: justify;"><strong>hTop</strong><br />
Es como top: un visor de procesos, pero un poco mas visual y se pueden matar procesos al instante.</p>
<pre>aptitude install htop</pre>
<p style="text-align: justify;">Y listo! Tan sencillo como eso, ahora solamente poniendo htop en la línea de comandos tendremos una visión general de nuestro ordenador con incluso la posibilidad de matar procesos, supongo que para que cuando algo se quede colgado matarlo en un segundo.</p>
<p>&nbsp;</p>
<p style="text-align: justify;"><strong>Monitor de actividad para MYSQL</strong></p>
<p style="text-align: justify;">Una aplicación similar a htop, pero para el MYSQL, mytop, que nos informa de consultas que se están ejecutando, cuales son lentas,… y al parecer un sinfín de cosas. Pues nada, vamos allí:</p>
<pre style="text-align: justify;">aptitude install mytop</pre>
<p style="text-align: justify;">Configurar my top con esto pero personalizándolo</p>
<pre style="text-align: justify;">cd /.mytop</pre>
<pre style="text-align: justify;">user = widplay
pass = password
host = localhost
db = widplay
delay = 5
port = 3306
socket =
batchmode = 0
header = 1
color = 1
idle = 1</pre>
<p style="text-align: justify;"><a href="http://jonsegador.com/2009/08/instalar-y-entender-mytop-monitorizando-mysql/" target="_blank">Aquí hay un tutorial para entender mytop y interfaz web.</a></p>
<h4 style="text-align: justify;">Personalizando el prompt</h4>
<p style="text-align: justify;">El prompt, cuando conectas por ssh, siempre tiene este formato: usuario@nombre_maquina:, pero normalmente el nombre de la maquina es el que te han dado, en nuestro caso ks23280. Pero molaría mas que pusiese el nombre de tu proyecto, en nuestro caso widplay. Para hacerlo poner:</p>
<pre style="text-align: justify;">hostname WidPlay</pre>
<p style="text-align: justify;">Luego editas el fichero hostname</p>
<pre style="text-align: justify;">nano /etc/hostname</pre>
<p style="text-align: justify;">Después solo tienes que reiniciar el ordenador:</p>
<pre style="text-align: justify;">reboot</pre>
<h4 style="text-align: justify;">Algunos aspectos más de seguridad</h4>
<p style="text-align: justify;">En los foros de OVH hay muchos temas interesantes para leer, uno sobre extras de seguridad <a href="http://forum.ovh.es/showthread.php?p=58608" target="_blank">es este</a></p>
<p style="text-align: justify;">No obstante recomiendo leer muchos más, contrastar y dedicarle muchas horas si puede ser.</p>
<h4>Comandos útiles</h4>
<p><strong>Desinstalar programas:</strong> aptitude remove &#8211;purge paquete</p>
<p><strong>Administrar usuarios:</strong><br />
<a href="http://rm-rf.es/crear-eliminar-y-modificar-usuarios-de-sistema-en-unix/" target="_blank">http://rm-rf.es/crear-eliminar-y-modificar-usuarios-de-sistema-en-unix/</a><strong></strong></p>
<p><strong>Editar passwords de usuarios:</strong> nano etc/passwd<strong></strong></p>
<p><strong>Para saber que tienes instalado de algo:</strong> dpkg &#8211;list | grep nombre-de-algo<strong></strong></p>
<p><strong>Saber la versión de tu sistema operativo:</strong> lsb_release -a</p>
<p><strong>Ver los puertos que tenemos abiertos en el ordenador:</strong> nmap -v -sS -O localhost</p>
<p style="text-align: justify;"><strong>Vaciar un log (Aunque la LOPD prefiere que se roten en vez de vaciar):</strong><br />
echo &#8221; &#8221; &gt; fichero.log</p>
<h2 style="text-align: justify;">Conclusión final</h2>
<p style="text-align: justify;">Realmente, tras instalar el servidor y todas sus cosas 6 veces, haberle dedicado unas 2 semanas con un mínimo de 7 horas diarias, la septima vez lo instalé todo en menos de 1 hora, con lo que la cosa ya es rápida.</p>
<p style="text-align: justify;">Y si, es un jaleo todo lo que hay que hacer para prepararlo&#8230; pero bueno estos apuntes seguro te ayudan.</p>
<p style="text-align: justify;">Así que ahora a seguir programando que nos estamos ahorrando un dineraaaal para destinarlo en más programación <img src='http://blog.widplay.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p style="text-align: justify;">Esperemos que muchos crackers no te hundan este pequeño trabajo por que yo desde el minuto 1 tenía cientos de ataques registrados en los logs de servidores chinos y rusos&#8230; O.o&#8230; jajaja esperemos no sean crueles&#8230;</p>
<p style="text-align: justify;">
<p style="text-align: justify;"><strong>Actualización 23-12-2011:</strong> Cierto es que este manual te enseña a prepararte un servidor &#8220;casero&#8221;, es decir, aunque no es casero está alojado en un datacenter, y esa parte sea profesional (Me refiero a la disponibilidad, la velocidad,&#8230;si! esos aspectos son profesionales) pero no olvidemos que la otra parte (la tuya, la del sysadmin) no lo es. Me refiero a que el hosting de este tipo te sirve para montar un hosting &#8220;básico&#8221;, pero ¿Y si en la empresa donde hemos contratado el hosting, en este caso OVH, se fastidia el disco duro? Lógicamente (<a href="http://foros.ovh.es/showthread.php?t=9162" target="_blank">como nos comenta Jaumas aqui</a>) entre que se cambia el disco duro, se instala todo de nuevo, se restaura el backup,&#8230; pueden pasar horas&#8230; o días&#8230; vamos algo impensable para una empresa seria.</p>
<p style="text-align: justify;">Lo correcto seria tener un sistema de discos duros en raid, y claro! con un sistema incluso de balanceo de carga para evitar caidas y algunas cosas más (pero bueno eso ya es a un nivel mucho más avanzado).</p>
<p style="text-align: justify;">Sinceramente, los primeros meses (o incluso vida entera de un proyecto medio), no necesitas tantas complicaciones, y más cuando el dinero escasea, pero no olvidemos que son cosas a tener en cuenta cuando la cosa crece. Aunque si que es cierto también que si la cosa crece siempre puedes delegar en terceros que se encarguen de la parte del hosting (Pero eso te va a suponer volver al paso de servidor dedicado administrado, con lo que supone costes)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.widplay.org/?feed=rss2&#038;p=58</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>No os entreguéis a esos bestias</title>
		<link>http://blog.widplay.org/?p=55</link>
		<comments>http://blog.widplay.org/?p=55#comments</comments>
		<pubDate>Sat, 10 Dec 2011 08:38:39 +0000</pubDate>
		<dc:creator>Leif Ferreira</dc:creator>
				<category><![CDATA[Filosofía]]></category>
		<category><![CDATA[chaplin]]></category>

		<guid isPermaLink="false">http://blog.widplay.org/?p=55</guid>
		<description><![CDATA[Gran escena de The Great Dictator (El Gran Dictador) que se estrenó en 1940, dirigida, escrita y protagonizada por Chaplin. La desconociamos totalmente, son ya más de 70 años, pero aun así identifica la filosofia que tenemos en WidPlay y seguro que la de muchos de vosotros. Unámonos por la libertad, también la libertad de información, y [...]]]></description>
			<content:encoded><![CDATA[<p>Gran escena de <strong><em><a href="http://www.imdb.com/title/tt0032553/">The Great Dictator</a></em></strong> (El Gran Dictador) que se estrenó en 1940, dirigida, escrita y protagonizada por Chaplin. La desconociamos totalmente, son ya más de 70 años, pero aun así identifica la filosofia que tenemos en WidPlay y seguro que la de muchos de vosotros. Unámonos por la libertad, también la libertad de información, y un mundo sin subnormales fanáticos y codiciosos.</p>
<p><iframe src="http://www.youtube.com/embed/Z8G5U-cyNCo" frameborder="0" width="560" height="315"></iframe></p>
<p>&nbsp;</p>
<blockquote><address>Lo siento, pero no quiero ser emperador. No es lo mío. No quiero gobernar o conquistar a nadie. Me gustaría ayudar a todo el mundo, si fuera posible: a judíos, gentiles, negros, blancos. Todos nosotros queremos ayudarnos mutuamente. Los seres humanos somos así. Queremos vivir para la felicidad y no para la miseria ajena. No queremos odiarnos y despreciarnos mutuamente. En este mundo hay sitio para todos. Y la buena tierra es rica y puede proveer a todos.</address>
<address>El camino de la vida puede ser libre y bello; pero hemos perdido el camino. La avaricia ha envenenado las almas de los hombres, ha levantado en el mundo barricadas de odio, nos ha llevado al paso de la oca a la miseria y a la matanza. Hemos aumentado la velocidad. Pero nos hemos encerrado nosotros mismos dentro de ella. La maquinaria, que proporciona abundancia, nos ha dejado en la indigencia. Nuestra ciencia nos ha hecho cínicos; nuestra inteligencia, duros y faltos de sentimientos. Pensamos demasiado y sentimos demasiado poco. Más que maquinaria, necesitamos humanidad. Más que inteligencia, necesitamos amabilidad y cortesía. Sin estas cualidades, la vida será violenta y todo se perderá.</address>
<address>El avión y la radio nos han aproximado más. La verdadera naturaleza de estos adelantos clama por la bondad en el hombre, clama por la fraternidad universal, por la unidad de todos nosotros. Incluso ahora, mi voz está llegando a millones de seres de todo el mundo, a millones de hombres, mujeres y niños desesperados, víctimas de un sistema que tortura a los hombres y encarcela a las personas inocentes. A aquellos que puedan oírme, les digo: “No desesperéis”.</address>
<address>La desgracia que nos ha caído encima no es más que el paso de la avaricia, la amargura de los hombres, que temen el camino del progreso humano. El odio de los hombres pasará, y los dictadores morirán, y el poder que arrebataron al pueblo volverá al pueblo. Y mientras los hombres mueren, la libertad no perecerá jamás.</address>
<address>Soldados. No os entreguéis a esos bestias, que os desprecian, que os esclavizan, que gobiernan vuestras vidas; decidles lo que hay que hacer, lo que hay que pensar y lo que hay que sentir. Que os obligan a hacer la instrucción, que os tienen a media ración, que os tratan como a ganado y os utilizan como carne de cañón. No os entreguéis a esos hombres desnaturalizados, a esos hombres-máquina con inteligencia y corazones de máquina. Vosotros no sois máquinas. Sois hombres. Con el amor de la humanidad en vuestros corazones. No odiéis. Sólo aquellos que no son amados odian, los que no son amados y los desnaturalizados.</address>
<address>Soldados. No luchéis por la esclavitud. Luchad por la libertad. En el capítulo diecisiete de san Lucas está escrito que el reino de Dios se halla dentro del hombre, no de un hombre o de un grupo de hombres, sino de todos los hombres. En vosotros. Vosotros, el pueblo tenéis el poder, el poder de crear máquinas. El poder de crear felicidad. Vosotros, el pueblo, tenéis el poder de hacer que esta vida sea libre y bella, de hacer de esta vida una maravillosa aventura. Por tanto, en nombre de la democracia, empleemos ese poder, unámonos todos. Lucharemos por un mundo nuevo, por un mundo digno, que dará a los hombres la posibilidad de trabajar, que dará a la juventud un futuro y a los ancianos seguridad.</address>
<address>Prometiéndoos todo esto, las bestias han subido al poder. Pero mienten. No han cumplido esa promesa. No la cumplirán. Los dictadores se dan libertad a sí mismos, pero esclavizan al pueblo. Ahora, unámonos para liberar el mundo, para terminar con las barreras nacionales, para terminar con la codicia, con el odio y con la intolerancia. Luchemos por un mundo de la razón, un mundo en el que la ciencia y el progreso lleven la felicidad a todos nosotros. Soldados, en nombre de la democracia, unámonos.</address>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.widplay.org/?feed=rss2&#038;p=55</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Integrar el chat XMPP de Facebook</title>
		<link>http://blog.widplay.org/?p=47</link>
		<comments>http://blog.widplay.org/?p=47#comments</comments>
		<pubDate>Tue, 29 Nov 2011 20:59:01 +0000</pubDate>
		<dc:creator>Hector Leon Zarco</dc:creator>
				<category><![CDATA[Aplicaciones]]></category>
		<category><![CDATA[Core]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[msn]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[strophe]]></category>
		<category><![CDATA[xmpp]]></category>

		<guid isPermaLink="false">http://blog.widplay.org/?p=47</guid>
		<description><![CDATA[En WidPlay intentamos unificar todos los servicios más cotidianos de internet en un un mismo lugar. Una de las cosas que todos solemos utilizar son los chats, y nosotros queremos que en WidPlay puedas hablar con tus contactos de Facebook, Google, MSN,… desde aquí, sin instalar nada. Tras trastear en la parte de integrar el [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">En WidPlay intentamos unificar todos los servicios más cotidianos de internet en un un mismo lugar. Una de las cosas que todos solemos utilizar son los chats, y nosotros queremos que en WidPlay puedas hablar con tus contactos de Facebook, Google, MSN,… desde aquí, sin instalar nada.</p>
<p style="text-align: justify;">Tras trastear en la parte de integrar el chat de Facebook y conseguirlo creemos que ha mas de uno le puede venir bien lo que hemos conseguido: Conectar al chat con la utilización de XMPP y autorización OAUTH.</p>
<p><img class="alignleft" style="margin-right: 10px; margin-left: 10px;" src="http://www.muyinternet.com/wp-content/uploads/2009/11/xmpp-logo.png" alt="" width="176" height="181" /></p>
<p style="text-align: justify;">XMPP es un protocolo estandar para las comunicaciones como chats. De hecho los más grandes en internet lo utilizan. Los teléfonos moviles tienen aplicaciones nativas que usan estas funcionalidades, pero como ya sabéis nosotros odiamos las aplicaciones nativas ya que se puede hacer sin instalar nada, todo a traves de un simple navegador.</p>
<p style="text-align: justify;">Facebook nos permite conectar con su chat de 2 metodos distintos, el primero (no recomendable) mediante usuario y contraseña: facebookId@chat.facebook.com y tu contaseña. Y por otro lado mediante su “X-FACEBOOK-PLATFORM “ (método muy recomendable) nosotros evidentemente vamos a obtar por el segundo <img src='http://blog.widplay.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p style="text-align: justify;">Con esto podemos conseguir una aplicación totalmente personalizada que interactue con Facebook con toda la infinidad de posibilidades que eso conlleva en cuanto a diseño y opciones.</p>
<p style="text-align: justify;">Bueno para conectar con el chat de Facebook necesitamos varias cosas:</p>
<p style="text-align: justify;">1-Un cliente XMPP, yo me he decantado por la librería <a href="http://strophe.im/strophejs/">Strophe.js</a> por varias razones; primero porque es javaScript (lenguaje de cliente), segundo porque tenia una buena <a href="http://groups.google.com/group/strophe.">documentación</a>.</p>
<p style="text-align: justify;">2- Un server BOSH que tramite las peticiones que realizamos con <a href="http://strophe.im/strophejs/">Strophe</a>, esto se puede hacer de varias maneras; instalando un server XMPP local por ejemplo <a href="https://github.com/twonds/punjab">Punjab</a> o usando uno externo: http://bosh.metajack.im:5280/xmpp-httpbind.</p>
<p style="text-align: justify;">3- La madre de las librerías JavaScript: <a href="http://jquery.com/">JQuery</a></p>
<p style="text-align: justify;">4- Plugin <a href="https://github.com/rubenjgarciab/turedsocial/blob/master/strophe-plugins/src/facebook.js">facebook.js</a> de <a href="https://github.com/rubenjgarciab">rubenjgarciab</a>. Agradecerle muchísimo el plugin y el soporte que me dio!</p>
<p style="text-align: justify;">5- Una <a href="https://developers.facebook.com/apps">aplicación</a> de facebook.</p>
<p style="text-align: justify;">Al lio, una vez tengamos incluidas las 3 librerías en nuestro proyecto vamos a iniciar la conexión:</p>
<pre style="padding-left: 30px;">$(document).ready(function () {
var apiKey = '',
secretKey = '',
sessionKey = '',
boshServer = 'http://bosh.metajack.im:5280/xmpp-httpbind';
connection = new Strophe.Connection(boshServer);
connection.facebookConnect("idFacebookUser@chat.facebook.com",onConnect,300,1,apiKey,secretKey,sessionKey);
});</pre>
<p style="text-align: justify;">Comento un poco lo siguiente; apiKey y secretKey las tienes en tu aplicación de Facebook, onConnect es la función que se llamará en el callback de connection.facebookConnect() y por último el sessionKey es valor único por usuario con el que Facebook sabe que estamos autentificados&#8230; ¿que como se saca?, pues por ejemplo utilizando la <a href="http://developers.facebook.com/docs/reference/javascript/">librería JS de Facebook</a>, con el método <a href="http://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/">getLoginStatus</a>, (te devuelve varios valores, uno de los cuales es el sessionKey). Bueno una vez hecho esto deberíamos aparecer como conectados en el chat de Facebook.</p>
<p style="text-align: justify;"><strong>IMPORTANTE:</strong> Adjunto un ejemplo con todo lo explicado, las librerías incluidas y mucho más con el que solo tienes que introducir tus datos correctamente y funciona 100%, os recomiendo seriamente que le echéis un ojo a cómo funciona XMPP internamente es decir cómo se comunica: <a href="http://xmpp.org/rfcs/rfc3921.html">http://xmpp.org/rfcs/rfc3921.html</a>. Para cualquier cosa no dudéis poneros en contacto conmigo  <a href="http://twitter.com/zzarcon">twitter.com/zzarcon</a></p>
<p style="text-align: justify;"><a href="http://blog.widplay.org/wp-content/uploads/2011/11/Proyect.rar"><strong>Descargar ejemplo</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.widplay.org/?feed=rss2&#038;p=47</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Desarrollando como toca</title>
		<link>http://blog.widplay.org/?p=38</link>
		<comments>http://blog.widplay.org/?p=38#comments</comments>
		<pubDate>Sat, 12 Nov 2011 18:40:16 +0000</pubDate>
		<dc:creator>Leif Ferreira</dc:creator>
				<category><![CDATA[Filosofía]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Navegador web]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[Safari]]></category>

		<guid isPermaLink="false">http://blog.widplay.org/?p=38</guid>
		<description><![CDATA[Desde hace años, cualquiera que ha hecho desde una página web simple a una página mucho más compleja como puede ser WidPlay, los navegadores siempre han supuesto una gran piedra en el camino. Normalmente esto suele pasar por dos motivos: Usas Internet Explorer como navegador (GRAN FALLO) Usas un navegador bueno como Safari, Firefox o [...]]]></description>
			<content:encoded><![CDATA[<p>Desde hace años, cualquiera que ha hecho desde una página web simple a una página mucho más compleja como puede ser WidPlay, los navegadores siempre han supuesto una gran piedra en el camino. Normalmente esto suele pasar por dos motivos:</p>
<ol>
<li>Usas Internet Explorer como navegador (GRAN FALLO)</li>
<li>Usas un navegador bueno como Safari, Firefox o Chrome pero en versiónes antiguas (Error, pero no tan grande)</li>
</ol>
<p>Debido a que la gran mayoría de los usuarios normales tienen Windows como sistema operativo, donde además algunos no saben que es un navegador, y el navegador predeterminado de Windows es Internet Explorer, no están disfrutando de internet como toca.</p>
<p>¿Pero por que no hay que usar Internet Explorer o un navegador muy anticuado como navegador y por que los desarrolladores no tenemos que hacer webs con especificaciones especiales para estos navegadores? Es un producto de mala calidad, que no respeta los estándares en tiempo real (suele ir con 2/3 años de retraso y a esto hay que sumarle que un usuario bajo/medio no se cambia el navegador por miedo en otros 2/3 años). Permitiendo el acceso a webs con esos navegadores, hacemos que el usuario esté retrasado 5/6 años. Es algo que no se puede permitir, no respetan estándares como HTML5, CSS3, Canvas,&#8230; protocolos estáblecidos como estandar desde la W3C.</p>
<p>En los otros navegadores simplemente ha sido un pequeño descuido por parte del usuario no actualizarlo.</p>
<p>Como desarrollador, en todo proyecto que inicio lo he tenido claro. No hacer versiones para navegadores antiguos. Ya no solo por que no se va a ver igual cara al usuario que visita la página, sino por que (por ejemplo en WidPlay, un proyecto de última generación) no van a disfrutarlo de la misma forma.</p>
<p>Así que una vez más nuestra posición es tajante en cuanto a esto: Favorecer al usuario y al desarrollo en general, no dando soporte en WidPlay a navegadores antiguos.</p>
<p>No es que sea una cosa por capricho, desarrollar  unas semanas más para estos navegadores retrasados solo nos costaría eso, unas semanas más, pero contribuiríamos a cosas estúpidas y absurdas, y WidPlay para nada quiere entrar en esos tipos de círculos viciosos.</p>
<p>Así que sin miedo alguno, y sabiendo que vas a disfrutar de internet en todo su explendor, te recomendamos que te descargues uno de estos navegadores en su última versión (Es como cualquier otro programa, simplemente descarga e instala): <a title="Descargar Safari" href="http://www.apple.com/es/safari/">Safari de Apple</a>, <a title="Descargar Opera" href="http://www.opera.com/download/">Opera</a>, <a title="Descargar Chrome" href="http://www.google.com/chrome?hl=es">Chrome de Google</a>, <a title="Descargar Firefox" href="https://www.mozilla.org/es-ES/firefox/new/">Firefox de Mozilla</a>.</p>
<p>Y a partir de ahora úsalo como navegador predeterminado.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.widplay.org/?feed=rss2&#038;p=38</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>App nativas SUCK! We ♥ HTML 5</title>
		<link>http://blog.widplay.org/?p=32</link>
		<comments>http://blog.widplay.org/?p=32#comments</comments>
		<pubDate>Tue, 01 Nov 2011 12:52:42 +0000</pubDate>
		<dc:creator>Leif Ferreira</dc:creator>
				<category><![CDATA[Aplicaciones]]></category>
		<category><![CDATA[Filosofía]]></category>
		<category><![CDATA[aplicaciones]]></category>
		<category><![CDATA[aplicaciones nativas]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[moviles]]></category>

		<guid isPermaLink="false">http://blog.widplay.org/?p=32</guid>
		<description><![CDATA[Muchos me preguntan lo mismo: ¿WidPlay estará en dispositivos móviles? ¿Haréis aplicaciones nativas de WidPlay? La respuesta es si para la primera y no para la segunda. Es cierto que WidPlay es una gozada tenerlo abierto en una pantalla panorámica de 24” pulgadas. Lo digo por experiencia, compré una pantalla así . Puedes tener muchas [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://blog.widplay.org/wp-content/uploads/2011/11/423760798.jpg"><img class="size-full wp-image-33 alignleft" style="margin-left: 15px; margin-right: 15px;" title="WidPlay en CampusParty Milenio 2011" src="http://blog.widplay.org/wp-content/uploads/2011/11/423760798.jpg" alt="" width="286" height="213" /></a>Muchos me preguntan lo mismo: ¿WidPlay estará en dispositivos móviles? ¿Haréis aplicaciones nativas de WidPlay? La respuesta es si para la primera y no para la segunda.</p>
<p style="text-align: justify;">Es cierto que WidPlay es una gozada tenerlo abierto en una pantalla panorámica de 24” pulgadas. Lo digo por experiencia, compré una pantalla así <img src='http://blog.widplay.org/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> . Puedes tener muchas cosas abiertas y tener una visión “real time” de muchísimas cosas al mismo tiempo.</p>
<p style="text-align: justify;">¿Pero qué pasará en un dispositivo móvil? Lógicamente son dispositivos  que no tienen pantallas de 24 pulgadas, en el mejor de los casos puede tener 8 pulgadas. Como es deducible, para los dispositivos móviles WidPlay reducirá algunas funcionalidades y modificará la parte visual a algo más compacto y simple. Ya estamos trabajando en ello.</p>
<p style="text-align: justify;">El tema de la pantalla y que sea pequeña es algo inevitable por el momento, ¿Pero qué pasa con la forma de desarrollarlo? WidPlay es pro HTML5 a muerte. Pero no solo HTML5, también CSS3, JavaScript, Canvas,… tecnologías abiertas, no privativas, con posibilidades aun por descubrir.</p>
<p style="text-align: justify;"><a title="El código de WidPlay" href="http://widplay.org/elcodigo.php"><img class="alignnone" title="html5 WidPlay" src="http://widplay.org/img/barralenguajes.png" alt="" width="530" height="88" /></a></p>
<p style="text-align: justify;"><a href="http://widplay.org/traselcodigo.php">Yo (Leif Ferreira)</a>, tanto personalmente como en representación de WidPlay, suelo ir a charlas de programación, eventos relacionados con nuevas tecnologías y especialmente el mundo digital, y en todos ellos siempre hay desarrolladores de dispositivos móviles que desarrollan para plataformas propias (Apple, Android). No entendemos como hoy en día desarrolladores hacen eso, como habiendo herramientas que no dependen de una plataforma, se cierran a una plataforma apoyando a la forma de trabajar de empresas como esas.</p>
<p style="text-align: justify;">Cuando debato esto con amantes fervientes del móvil suelen argumentarme siempre lo mismo: “Es que desarrollando en plataformas nativas la experiencia de usuario no es la misma”, Ciertamente hace unos años podía ser, pero y si lo era hace unos años es prácticamente por lo mismo que hoy en día (aunque hoy es a menor escala debido a la estandarización progresiva del HTML5): hay desarrolladores que apoyan este tipo de prácticas, y esto hace que sea el pez que se muerde la cola. Nos referimos a que, empresas como Apple podrían dedicar todos sus millones a que sus desarrolladores hiciesen plataformas que soporten  HTML5, ¿Qué no es o era un estándar? Muy bien, sabemos el objetivo a conseguir con HTML5, Apple (y compañía) usa tus millones para que tus desarrolladores aporten al HTML5 como estándar. Pero no se hace… está claro por qué no? Dinero rápido. ¿Y si encima desarrolladores hacen aplicaciones y les funciona? Con lo que no entendemos como un desarrollador, viendo todas las posibilidades que hay entra en ese ciclo vicioso apostando más por enriquecer una compañía, que por el desarrollo y creación de formas mejores para la humanidad, que de eso es lo que se trata, hacer cosas buenas para todos los habitantes del planeta.</p>
<p style="text-align: justify;">Y no, no hace falta que el dispositivo tenga internet para que una aplicación HTML5 corra en su móvil como cualquier otra, que de todo he escuchado.</p>
<p style="text-align: justify;">Así que la respuesta es:</p>
<p style="text-align: justify;">Si haremos una aplicación para dispositivos móviles, porque son increíbles las posibilidades del aspecto movilidad fusionado con WidPlay.</p>
<p style="text-align: justify;">No haremos aplicaciones nativas. We love HTML5 (En realidad: We love todo lo que sean lenguajes libres, se llame HTML5, o Apple <img src='http://blog.widplay.org/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> , no importa el nombre pero si la esencia)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.widplay.org/?feed=rss2&#038;p=32</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>El origen&#8230;</title>
		<link>http://blog.widplay.org/?p=12</link>
		<comments>http://blog.widplay.org/?p=12#comments</comments>
		<pubDate>Wed, 26 Oct 2011 04:44:27 +0000</pubDate>
		<dc:creator>Leif Ferreira</dc:creator>
				<category><![CDATA[Anécdotas]]></category>

		<guid isPermaLink="false">http://blog.widplay.org/?p=12</guid>
		<description><![CDATA[No son pocos los que me preguntan, cuando hablo de WidPlay, sobre su origen, sobre como fue gestado, y como puede ser que no haya nada así, con lo que para primer post del blog cuento el origen (Si no sabes que es WidPlay puedes ver www.widplay.org). Como cualquier entendido en la materia te diría: [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">No son pocos los que me preguntan, cuando hablo de WidPlay, sobre su origen, sobre como fue gestado, y como puede ser que no haya nada así, con lo que para primer post del blog cuento el origen (Si no sabes que es WidPlay puedes ver <a title="widplay.org" href="http://www.widplay.org">www.widplay.org</a>). Como cualquier entendido en la materia te diría: La inspiración no tiene fecha ni lugar. Tienen que tener razón estas personas, por que en este caso se vuelve a confirmar. WidPlay&#8230; me encanta este nombre! Encaja perfectamente en lo que es, y suena armonioso:</p>
<p style="padding-left: 30px; text-align: justify;"><strong>Wid</strong>: Widgets, Los &#8220;programas&#8221; que componen la suitte de aplicaciones que acompañan la red social.</p>
<p style="padding-left: 30px; text-align: justify;"><strong>Play</strong>: La acción de interactuar con estos y organizártelos al gusto.</p>
<p style="text-align: justify;">Lo digo ya: A mis 25 años, no tengo facebook, no tengo twitter (O no tenia hasta crear la cuenta de <a title="Twitter Widplay" href="http://www.twitter.com/widplay">WidPlay</a>), ni mucho menos Tuenti,&#8230; Lo se, es irónico que alguien que no tiene perfiles en redes sociales intente hacer una red social.</p>
<p style="text-align: justify;">Cierto, <img src='http://blog.widplay.org/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> , y eso mismo hace que mole más aun WidPlay <img src='http://blog.widplay.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p style="text-align: justify;">Sigo&#8230; Pues bien, antes no hacia mucho caso a charlas o eventos donde emprendedores hablan de sus proyectos o negocios digitales, donde se organizan talleres, donde haces networking,&#8230; Pero desde hace 3 años intento ir a todo el que puedo (Unos 5/6 al año). Y aunque es cierto que muchos puede que te quiten tiempo, uno de vez en cuando motiva mucho y conoces gente.</p>
<p style="text-align: justify;">Con lo que para seguir con el argumento principal de la anécdota, la semilla de esta idea se originó sin yo saberlo ese primer año que empecé a ir a este tipo de eventos (¿Tal vez fueron las ganas y la predisposición a cosas nuevas del novato? No lo se). Fue con 22 años que junto a mi padre y hermano nos acercamos desde Valencia (Lugar donde vivo) a Madrid, a un evento que se organiza alrededor de Noviembre llamado <a title="Ficod" href="http://www.ficod.es">Ficod</a> (Por cierto se organiza el del 2011 en unas semanas <img src='http://blog.widplay.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ). Este evento suele llevar, además de emprendedores o personas bastante famosas sobre los negocios digitales, a emprendedores que hablan de sus proyectos y te lo muestran en una especie de charla familiar.</p>
<p style="text-align: justify;">No recuerdo muy bien de que iba la charla clave, digo clave no por el contenido que creo que acabé ahí por casualidad iendo al baño, sino por que originó la idea. Creo que era sobre un programa relacionado con la gestión de acciones en la bolsa (WTF! <img src='http://blog.widplay.org/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  ¿Bolsa? Si no tengo ni idea&#8230;),  en fin, me senté a escuchar un poco de que iba el asunto y más que nada a ver como era una aplicación que trataba con cosas tan serias como la bolsa y que con dos cojones ellos se habian puesto a algo más que trastear. (Suelen decir que hay que escuchar y aprender todo lo que se pueda, aunque no te interese para nada o no entiendas sobre la bolsa, pero bueno mi curiosidad era más bien técnica)</p>
<p style="text-align: justify;">Así que ahí estaba yo, escuchando y aprendiendo lo que cayese, cuando de repente el ponente preguntó a la sala algo del tipo: ¿Como creéis que debería ser una aplicación en internet? Realmente pocas ideas se dijeron, pero un chico dijo lo más básico, que en su momento a más de uno se le escapó una sonrisa pensando que era un idealista y por ser algo tan simple. Dijo algo como:</p>
<p style="text-align: justify;"><em>Hombre&#8230; una página donde esté todo&#8230; donde puedas jugar, donde puedas escuchar música, donde puedas ver películas, estar con tus amigos&#8230; Sin tener que ir de un sitio a otro&#8230;</em></p>
<p style="text-align: justify;">Por aquel entonces simplemente se quedó ahí. Pero supongo que esa fue la semilla que 2 años después, con los conocimientos y tiempo ya necesarios, hizo que empezase WidPlay, donde intento llevar ese concepto al máximo. Ya veis, de esa gilipoyez <img src='http://blog.widplay.org/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> , ¿menos glamouroso de lo que imaginabáis? jajaja</p>
<p style="text-align: justify;">Tras un año de muchísimo código, de aprender cada día formas mejores de hacer las cosas, de explorar nuevas tecnologías, miles de horas de peleas con códigos, he fusionado todo lo mejor de las tecnologías existentes opensource de las que tengo conocimiento para crear WidPlay.</p>
<p style="text-align: justify;">Si te estás preguntando cuanta gente está detrás de WidPlay&#8230; La respuesta es 1 persona (Yo, Leif Ferreira) hasta hace 5 meses, 2 desde entonces (Hector Leon Zarco).</p>
<p style="text-align: justify;">¿Que cuanto dinero ha financiado el proyecto? Podría decir que cero, pero realmente, antes de WidPlay junté 6000 euros que he ido administrándome este año para todos los gastos: Coche, Internet, desplazamientos, Comida,&#8230; Lo que me ha permitido literalmente estar 24 horas pendiente de programar, desde que me levantaba hasta en la misma cama con el portátil.</p>
<p style="text-align: justify;">Un año después de las primeras líneas de código en esa hoja en blanco del <a title="Netbeans" href="http://www.netbeans.org">Netbeans</a> tenemos listo una versión Alpha compuesta por una suitte de 4 aplicaciones: Redes sociales, Música, Películas (Pelis, Documentales, Series, Anime) y Juegos. Haciendo que tanto esfuerzo esté dando resultado a lo que mucha gente me ha definido como revolucionario <img src='http://blog.widplay.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> . Ejemplo básico de WidPlay por dentro.</p>
<p style="text-align: justify;"><iframe src="http://player.vimeo.com/video/30989438?title=0&amp;byline=0&amp;portrait=0" frameborder="0" width="523" height="296"></iframe></p>
<p style="text-align: justify;">Aunque en un estado Alpha, eso significa que solo una pequeña red de colaboradores podrán probar la herramienta para empezar con el feedback, siempre puedes <a title="Contacto" href="http://widplay.org/contacto.php">contactarnos</a> y explicarnos porque te gustaría probar WidPlay y te contactaremos con la decisión.</p>
<p style="text-align: justify;">Así que esta es la historia del origen, y desde ya empieza WidPlay! Cierto es que aun queda mucho que hacer, pero ya no es lo mismo cuando hablas a la gente de tu idea, que ha pasado de que nadie me entendia de que iba a &#8220;Esto es revolucionario!&#8221; al verlo funcionando&#8230;</p>
<p style="text-align: justify;">En unos días estará online para Betatesters (o Alphatesters en este caso).</p>
<p style="text-align: justify;"><a title="WidPlay Flickr" href="http://www.flickr.com/photos/widplay/6282057467/in/photostream"><img class="alignnone" title="WidPlay - Captura Inicio" src="http://farm7.static.flickr.com/6056/6282057467_95a4cf6f44_z.jpg" alt="" width="548" height="348" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.widplay.org/?feed=rss2&#038;p=12</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
