<?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>Web Evolución 2.0. Informática práctica. Diseño páginas web. Servidores web Apache e IIS. HTML, ASP, PHP, Javascript, XML, AJAX</title>
	<atom:link href="http://www.webevolucion.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.webevolucion.com</link>
	<description>lenguajes de programación orientada a la web</description>
	<lastBuildDate>Wed, 12 Oct 2011 13:30:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Rewrite</title>
		<link>http://www.webevolucion.com/programacion/rewrite/</link>
		<comments>http://www.webevolucion.com/programacion/rewrite/#comments</comments>
		<pubDate>Tue, 06 Sep 2011 06:41:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.webevolucion.com/?p=258</guid>
		<description><![CDATA[<p> 


</p>
<p>Hoy en día la posición en los buscadores es un factor importante en el éxito de un sitio web. También se sabe que a los buscadores no le atraen mucho los sitios dinámicos, es decir, aquellos que cambian su contenido dependiendo de diversos factores.
Por ejemplo, mi foro de Perl en Español está en PHP por <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.webevolucion.com/programacion/rewrite/">Rewrite</a></span>]]></description>
			<content:encoded><![CDATA[<p><span style="color: #ff0000;"> <script type="text/javascript"><!--
google_ad_client = "ca-pub-3170708476159266";
/* webevolucion */
google_ad_slot = "2580160560";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></span></p>
<p>Hoy en día la posición en los buscadores es un factor importante en el éxito de un sitio web. También se sabe que a los buscadores no le atraen mucho los sitios dinámicos, es decir, aquellos que cambian su contenido dependiendo de diversos factores.<br />
Por ejemplo, mi foro de Perl en Español está en PHP por lo que los urls para navegar el foro son parecidos a esto:</p>
<p>http://perlenespanol.com/foro/viewforum.php?f=3</p>
<p>Y aunque los bots de los buscadores lo pueden leer e indexar en su base de datos, si ponen un penalti por ser un url dinámico. Para solucionar esto, si eres un visitante o un robot, el url que verás será:</p>
<p>http://perlenespanol.com/foro/forum-3.html</p>
<p>Si pruebas ambos urls verás que muestra el mismo contenido. Podrás pensar que son dos páginas distintas, pero no es así, el segundo url, el que simula una página estática, es convertido detrás de las cortinas para llamar a la página real. Así es, en mi servidor no existe un archivo forum-3.html.</p>
<p>En este artículo les voy a mostrar como lograr esto.</p>
<p>Una solución elegante</p>
<p>Quizá estarán pensando que todo esto es un producto de magia, pero realmente es bastante sencillo lograrlo y los resultados serán muy buenos, pues no solamente podrán dar urls estáticos a los buscadores mejorando su posición, sino que también podrán dar urls amigables a sus usuarios.</p>
<p>Para poder lograr esto es necesario tener lo siguiente:<br />
•Un servidor Apache versión 1.2 o mejor.<br />
•Acceso para editar los archivos de configuración .htaccess, y quizá de ser necesario el http.conf.<br />
Si están acostumbrados a usar servidores Apache, lo más seguro es que en algún momento hayan escuchado acerca del módulo mod_rewrite de Apache. Normalmente este módulo viene por default en las distribuciones de Apache pero en sistemas *nix puede que haya sido compilado sin este módulo.<br />
Para poder usar este módulo primero lo tenemos que activar. En caso de que no tengas el módulo activado tendrás que editar tu archivo http.conf y quitar el comentario de la línea que carga el módulo para que quede de la siguiente manera:</p>
<p>#LoadModule rewrite_module<br />
modules/mod_rewrite.so<br />
#AddModule mod_rewrite.c</p>
<p>Comprendiendo mod_rewrite</p>
<p>Es importante comprender lo que hace exactamente este módulo.</p>
<p>El mod_rewrite se ejecuta después de hacer un request en tu servidor y antes de ejecutar cualquier script. Lo que hace es que aplica un &#8220;filtro&#8221; configurado por uno sobres los urls y los rescribe detrás de las cortinas.</p>
<p>Por ejemplo, podrías tener un url inexistente como el siguiente:</p>
<p>http://www.tusitio.com/algo</p>
<p>Y entonces el mod_rewrite lo podría convertir a:</p>
<p>http://www.tusitio.com/cgi-bin/dir/aplicacion.cgi?categoria=algo</p>
<p>La conversión del url se hace por detrás por lo que el usuario no podrá ver nada de esto, sin embargo si verá el resultado que viene de la ejecución del url &#8220;real&#8221;.</p>
<p>Es importante comprender que mod_rewrite NO puede ser usado para cambiar el URL que el usuario ve es la barra de Dirección de su navegador a menos que una redirección externa es invocada. Sin embargo una dirección externa expone finalmente el url dinámico, así que mod_rewrite hace una redirección interna.</p>
<p>También es importante comprender que mod_rewrite cambia la dirección del archivo y las variables del url pedido pero NO cambia en ningún momento el despliegue de las mismas.</p>
<p>Poniendo mod_rewrite en práctica</p>
<p>Muy bien, empecemos con lo bueno, para esto vamos a hacer un ejemplo práctico.</p>
<p>Digamos que tienes una tienda de ropa y que tus clientes pueden ver la ropa que tienes navegando por categoría y talla de la misma. Para esto tienes una aplicación que se llama de la siguiente manera:</p>
<p>http://tusitio.com/cgi-bin/aplicacion_ropa.cgi?tipo=playeras&#038;sexo=femenino&#038;talla=chica</p>
<p>No es para nada bonito el url, por lo que queremos que nuestros clientes puedan acceder de la siguiente manera:</p>
<p>http://tusitio.com/playeras/femenino/chica.htm</p>
<p>Como ves es más intuitivo y amigable.</p>
<p>Usando mod_rewrite no es necesario hacer ningún cambio en tu aplicación, ni siquiera es necesario que crees los directorios &#8216;playeras/&#8217; ni &#8216;playeras/femenino&#8217;, tampoco es necesario que hagas un archivo que se llame chica.htm.</p>
<p>Lo que vamos a hacer es que cuando algún usuario haga un request de &#8216;http://tusitio.com/playeras/femenino/chica.htm&#8217; usaremos el mod_rewrite para filtrar y convertir el url a &#8216;http://tusitio.com/cgi-bin/aplicacion_ropa.cgi?tipo=playeras&amp;sexo=femenino&amp;talla=chica&#8217;, pero todo esto detrás de las cortinas, usando la redirección interna como habíamos dicho.</p>
<p>Ya que estemos seguros que tenemos el mod_rewrite instalado y activo, vamos a crear un nuevo archivo de configuración .htaccess.</p>
<p>Dentro de nuestro .htaccess vamos a inicializar el módulo mod_rewrite:<br />
RewriteEngine On<br />
Ya que tenemos esto, tenemos que configurar las reglas o filtros que vamos a usar. Cada uno deberá de ir en una nueva línea y podemos tener tantos como nosotros queramos y necesitemos.<br />
Entonces vamos a crear nuestro filtro que ser verá así:<br />
RewriteRule ^playeras/femenino/chica.htm cgi-bin/aplicacion_ropa.cgi?tipo=playeras&amp;sexo=femenino&amp;talla=chica [L,NC]<br />
Comprendamos nuestra línea del filtro. El filtro está conformado por 4 elementos, cada uno separado por un espacio en blanco.<br />
El primer elemento es:<br />
RewriteRule<br />
Aquí indicamos que estamos creando una nueva regla o filtro para la máquina de mod_rewrite. El segundo elemento es: ^playeras/femenino/chica.htm<br />
En este caso es el url que estamos buscando. Es importante que tengamos en cuenta que siempre debemos de usar los directorio relativos, es decir, no debemos de poner el dominio de nuestro sitio, el mod_rewrite lo pondrá por nosotros.<br />
La tercera parte es el nuevo url al cual queremos redirigir, también la dirección debe de estar relativa, mod_rewrite pondrá por nosotros el dominio de nuestro sitio.<br />
cgi-bin/aplicacion_ropa.cgi?tipo=playeras&amp;sexo=femenino&amp;talla=chica</p>
<p>NOTA: No podemos usar el mod_rewrite para hacer una redirección interna a un url que no se encuentre dentro de nuestro dominio.</p>
<p>La última parte es opcional y son flags que regulan el comportamiento del mod_rewrite.<br />
[L,NC]<br />
En las siguientes secciones veremos más detalles acerca de los flags, pero podemos decir que con los flags L y NC le decimos al mod_rewrite que sea la última regla que cheque si coincide y que no haga caso a las minúsculas y mayúsculas.</p>
<p>Más poder a nuestro mod_rewrite</p>
<p>El ejemplo anterior es de gran ayuda, vimos como podemos convertir un url dinámico en estático en cuestión de minutos, pero hay un pequeño problema.</p>
<p>Lo más seguro es que nuestra tienda de ropa no venda puras playeras chicas, ni tampoco puras de mujer, y lo más seguro es que venda más productos que puras playeras, debe de haber pantalones, chamarras, shorts, camisas, vestidos, etc, etc.</p>
<p>Hacer una nueva regla por cada producto y por cada tamaño será un verdadero dolor de cabeza, y aparte cada ves que queramos poner una nueva línea de productos en la tienda tendremos que modificar nuestro .htaccess.</p>
<p>Pues bueno, con mod_rewrite podemos evitar eso, pues aún no hemos visto la parte más poderosa.</p>
<p>En el último ejemplo hicimos un filtro bastante sencillo:<br />
RewriteEngine On<br />
RewriteRule ^playeras/femenino/chica.htm cgi-bin/aplicacion_ropa.cgi?tipo=playeras&amp;sexo=femenino&amp;talla=chica [L,NC]<br />
Pero también quisiéramos que los siguientes urls lo redirija al lugar correcto:</p>
<p>http://tusitio.com/pantalones/masculino/32.htm</p>
<p>http://tusitio.com/vestidos/femenino/mediano.htm</p>
<p>http://tusitio.com/shorts/infantil/12.htm</p>
<p>&#8230;</p>
<p>Si vemos, todos los urls tiene una misma sintaxis, el primer directorio sería la línea de ropa (pantalones,vestidos,shorts,etc), el subdirectorio sería el departamento (masculino,femenino,infantil,etc) y el archivo html sería la talla (32.htm,mediano.html,12.htm).</p>
<p>mod_rewrite nos permite usar expresiones regulares dentro de nuestros filtros, de esta manera podemos realizar filtros más poderosos.</p>
<p>Las expresiones regulares nos brindan un set de reglas que podemos usar para comprobar valores arbitrarios como en este caso. Sabemos que el url vendrá en una misma sintaxis pero tendrá diferentes valores, usando las expresiones regulares podemos capturar y comprobar esos valores.</p>
<p>Veamos la expresión regular que usaríamos en este caso para hacer lo que queremos:<br />
^([a-zA-Z]+)/([a-zA-Z]+)/([a-zA-Z0-9]+).htm$<br />
Expliquemos un poco nuestra expresión.<br />
El ^ incial denota inicio de línea, significa que solamente será válida la regla si se cumple iniciando la línea.</p>
<p>Los paréntesis ( ) los usamos para capturar el valor, en este caso así lo queremos pues después tendremos que usarlos para enviárselos a nuestro CGI de la aplicación.</p>
<p>Los [ ] los usamos para asignar un campo de caracteres. Los campos de caracteres los podemos usar cuando queremos checar que ciertos caracteres estén o no estén. En la primera parte que será de la línea de ropa, sabemos que solamente vendrán letras del alfabeto, por lo que solamente queremos de la a-z y de la A-Z, en minúsculas y mayúsculas. Lo mismo en la segunda parte, pero ya en la tercera parte si puede haber números por ejemplo en 32.htm, por lo que tenemos que poner también el 0-9.</p>
<p>El signo de + después del cierre del campo de carácter, significa que debe de haber por lo menos uno o más de los caracteres que queremos.</p>
<p>Luego tenemos la separación con las diagonales &#8216;/&#8217; que están fuera de los paréntesis pues queremos capturar solamente &#8216;pantalones&#8217; y no &#8216;pantalones/&#8217;.</p>
<p>Al final también dejamos el .htm fuera de los paréntesis pues no lo queremos usar, y terminamos con $ que simboliza final de línea.</p>
<p>Así ya tenemos nuestros valores capturados que ahora podremos usar en el url para llamar al CGI de nuestra aplicación:<br />
cgi-bin/aplicacion_ropa.cgi?tipo=$1&amp;sexo=$2&amp;talla=$3<br />
Vemos como los valores los sustituimos por $1, $2, $3 que a su vez serán sustituidos por mod_rewrite con los valores que capturamos en nuestros paréntesis.<br />
Cada paréntesis captura en una nueva variable y lo hacen en orden, así que van tomando $1, $2, $3, $4.. así hasta lo que se necesite.</p>
<p>Así que finalmente nuestra regla se verá de la siguiente manera:<br />
RewriteEngine On<br />
RewriteRule ^([a-zA-Z]+)/([a-zA-Z]+)/([a-zA-Z0-9]+).htm$ cgi-bin/aplicacion_ropa.cgi?tipo=$1&amp;sexo=$2&amp;talla=$3 [L,NC]<br />
Así si llamamos a los siguientes urls:</p>
<p>http://tusitio.com/pantalones/masculino/32.htm</p>
<p>http://tusitio.com/vestidos/femenino/mediano.htm</p>
<p>http://tusitio.com/shorts/infantil/12.htm</p>
<p>Serán redireccionados internamente a:</p>
<p>http://tusitio.com/cgi-bin/aplicacion_ropa.cgi?tipo=pantalones&#038;sexo=masculino&#038;talla=32</p>
<p>http://tusitio.com/cgi-bin/aplicacion_ropa.cgi?tipo=vestidos&#038;sexo=femenino&#038;talla=mediano</p>
<p>http://tusitio.com/cgi-bin/aplicacion_ropa.cgi?tipo=shorts&#038;sexo=infantil&#038;talla=12</p>
<p>Así de la nada, tenemos una lista infinita de páginas estáticas fáciles de navegar por nuestros usuarios.</p>
<p>Tomándole la medida a mod_rewrite</p>
<p>Usar mod_rewrite es sumamente sencillo, quizá lo más difícil podría ser aprender a usar las expresiones regulares y los flags que podemos usar para controlar el comportamiento del módulo.</p>
<p>Sin embargo ambas son muy intuitivas y con un poco de uso y de estar jugando y probando con ellas, les tomarás la práctica inmediatamente.</p>
<p>Dave Child hizo un PDF con un &#8220;acordeón&#8221; que enlista las expresiones regulares y flags que podemos usar en el mod_rewrite. Les recomiendo que descarguen el PDF con la lista y lo tengan a la mano en el momento de crear sus filtros:</p>
<p>http://www.ilovejackdaniels.com/mod_rewrite_cheat_sheet.pdf</p>
<p>Últimas Palabras</p>
<p>Cuando hagas tus primeras pruebas con el mod_rewrite, ten cuidado y si puedes has las pruebas con un servidor Apache que no esté en vivo, pues si tienes algún error de sintaxis al momento de crear tus filtros, verás un error 500 en todo tu sitio, evitando que tus usuarios puedan acceder a él.</p>
<p>En caso de que quieras convertir tu sitio de estático a dinámico pero no te atreves a hacerlo tu sólo, puedes usar nuestros Servicios de Perl en Español y nosotros lo haremos por ti:</p>
<p>http://perlenespanol.com/servicios/</p>
<p><span style="color: #ff0000;"> <script type="text/javascript"><!--
google_ad_client = "ca-pub-3170708476159266";
/* webevolucion */
google_ad_slot = "2580160560";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></span></p>
<p>Activar el módulo rewrite en Apache</p>
<h2><a title="Activar mod_rewrite de Apache2 en Ubuntu" href="http://sonidolibre.wordpress.com/2008/04/18/activar-mod_rewrite-de-apache2-en-ubuntu/" rel="bookmark">Activar mod_rewrite de Apache2 en Ubuntu</a></h2>
<div>Publicado el abril 18, 2008 por keogh</div>
<div>
<p>El mod_rewrite es un módulo de Apache que permite modificar lo que aparece en la barra de dirección, supongamos que tenemos lo siguiente: index.php?mod=index&amp;taskid=9, podría quedar: /task/9. La verdad nunca lo he usado a pie, pero se necesita tener activado este módulo para poder utilizar diversas aplicaciones y frameworks (como <a href="http://www.cakephp.org/" target="_blank">CakePHP</a>). Veamos como activarlo en Ubuntu 7.10.</p>
<p>Como siempre en <a href="http://www.ubuntu.com/" target="_blank">Ubuntu</a> todo es más fácil, esta distribución se la recomiendo a todos aquellos que quieran empezar a familiarizarse con GNU/Linux. Entonces tecleamos lo siguiente en la línea de comandos:</p>
<p><code>$ sudo a2enmod rewrite</code></p>
<p>El comando <em>a2enmod</em> (podría ser una abreviatura de <em>Apache2 Enable Module</em>) sirve para activar módulos que se encuentren en el directorio <em>/etc/apache2/mods-available</em>y los pasa al directorio <em>/etc/apache2/mods-enabled</em>.</p>
<p>Ahora lo que sigue es modificar nuestro host donde queremos que aplique el rewrite, en mi caso sera para todo lo que este dentro de mi localhost, entonces me voy al directorio <em>/etc/apache2/sites-enabled/</em> y aquí debe de haber un archivo llamado <em>000-default</em>, lo abrimos con vim o nano.</p>
<p><code>$ sudo vim /etc/apache2/sites-enabled/000-default</code></p>
<p>Aquí buscamos en las líneas que digan <em>AllowOverride None</em> y las cambiamos por<em>AllowOverride All</em>. Incluso podemos definir que directorios queremos que aplique es rewrite y cuales no.</p>
<p>Por último tenemos que reiniciar Apache2:</p>
<p><code>$ sudo /etc/init.d/apache2 force-reload</code></p>
<p>&nbsp;</p>
</div>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webevolucion.com/programacion/rewrite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>phpMyAdmin en Linux</title>
		<link>http://www.webevolucion.com/bases-de-datos/phpmyadmin-en-linux/</link>
		<comments>http://www.webevolucion.com/bases-de-datos/phpmyadmin-en-linux/#comments</comments>
		<pubDate>Sat, 25 Jun 2011 08:48:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Bases de datos]]></category>

		<guid isPermaLink="false">http://www.webevolucion.com/?p=253</guid>
		<description><![CDATA[<p>// 

</p>
<p>Cuando instalamos Ubuntu con el paquete LAMP, se instala phpMyAdmin.</p>
<p>En el fichero /etc/phpmyadmin/apache.conf podemos ver la configuración que se añade al Apache para poder ejecutarlo, simplemente se trata de añadir un Virtual Host:</p>


# phpMyAdmin default Apache configuration
Alias /phpmyadmin /usr/share/phpmyadmin
&#60;Directory /usr/share/phpmyadmin&#62;
Options FollowSymLinks
DirectoryIndex index.php
&#60;IfModule mod_php5.c&#62;
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc Off
php_flag track_vars On
php_flag register_globals Off
php_value include_path .
&#60;/IfModule&#62;
&#60;/Directory&#62;


<p>Como se puede <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.webevolucion.com/bases-de-datos/phpmyadmin-en-linux/">phpMyAdmin en Linux</a></span>]]></description>
			<content:encoded><![CDATA[<p><script type="text/javascript">// <![CDATA[
 google_ad_client = "ca-pub-3170708476159266"; /* webevolucion */ google_ad_slot = "2580160560"; google_ad_width = 728; google_ad_height = 90;
// ]]&gt;</script><br />
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
</script></p>
<p>Cuando instalamos Ubuntu con el paquete LAMP, se instala phpMyAdmin.</p>
<p>En el fichero <strong>/etc/phpmyadmin/apache.conf</strong> podemos ver la configuración que se añade al Apache para poder ejecutarlo, simplemente se trata de añadir un Virtual Host:</p>
<pre>
<blockquote>
<div id="_mcePaste"><span style="color: #ff0000;"># phpMyAdmin default Apache configuration</span></div>
<div id="_mcePaste"><span style="color: #ff0000;">Alias /phpmyadmin /usr/share/phpmyadmin</span></div>
<div id="_mcePaste"><span style="color: #ff0000;">&lt;Directory /usr/share/phpmyadmin&gt;</span></div>
<div id="_mcePaste"><span style="color: #ff0000;">Options FollowSymLinks</span></div>
<div id="_mcePaste"><span style="color: #ff0000;">DirectoryIndex index.php</span></div>
<div id="_mcePaste"><span style="color: #ff0000;">&lt;IfModule mod_php5.c&gt;</span></div>
<div id="_mcePaste"><span style="color: #ff0000;">AddType application/x-httpd-php .php</span></div>
<div id="_mcePaste"><span style="color: #ff0000;">php_flag magic_quotes_gpc Off</span></div>
<div id="_mcePaste"><span style="color: #ff0000;">php_flag track_vars On</span></div>
<div id="_mcePaste"><span style="color: #ff0000;">php_flag register_globals Off</span></div>
<div id="_mcePaste"><span style="color: #ff0000;">php_value include_path .</span></div>
<div id="_mcePaste"><span style="color: #ff0000;">&lt;/IfModule&gt;</span></div>
<div id="_mcePaste"><span style="color: #ff0000;">&lt;/Directory&gt;</span></div>
</blockquote>
</pre>
<p>Como se puede observar la carpeta donde encontramos todos los fichero es: <strong>/usr/share/phpmyadmin</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.webevolucion.com/bases-de-datos/phpmyadmin-en-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Curso HTML5.</title>
		<link>http://www.webevolucion.com/programacion/curso-html5/</link>
		<comments>http://www.webevolucion.com/programacion/curso-html5/#comments</comments>
		<pubDate>Tue, 07 Jun 2011 20:20:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[HTML 5]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.webevolucion.com/?p=228</guid>
		<description><![CDATA[<p>// 
// 
<p>// ]]></p>
<p>HTML 5 es la versión 5 de HTML, el lenguaje estándar de formato para páginas web. Tiene dos variantes HTML 5 y XHTML 5, descendientes de SGML y XML respectivamente. A diferencia de sus predecesores, XHTML y HTML 5 se han desarrollado de forma paralela por el W3C.</p>
<p>Se publica su primer borrador de <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.webevolucion.com/programacion/curso-html5/">Curso HTML5.</a></span>]]></description>
			<content:encoded><![CDATA[<p><script type="text/javascript">// <![CDATA[
  google_ad_client = "ca-pub-3170708476159266"; /* webevolucion */ google_ad_slot = "2580160560"; google_ad_width = 728; google_ad_height = 90;
// ]]&gt;</script><br />
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">// <![CDATA[</p>
<p>// ]]&gt;</script></p>
<p>HTML 5 es la versión 5 de HTML, el lenguaje estándar de formato para páginas web. Tiene dos variantes HTML 5 y XHTML 5, descendientes de SGML y XML respectivamente. A diferencia de sus predecesores, XHTML y HTML 5 se han desarrollado de forma paralela por el W3C.</p>
<p>Se publica su primer borrador de trabajo de HTML 5 el 22 de Enero de 2008 creando multitud de nuevas opciones para desarrollar páginas web en HTML ( vídeo y audio, webcam y micro, nuevos campos de formulario&#8230; ), y a fecha de hoy ( Enero 2011 ), las últimas versiones de los navegadores soportan algunas de las nuevas opciones, pero existen opciones todavía no soportadas por ningún navegador.</p>
<p>Estructura:</p>
<blockquote>
<pre><span style="color: #0000ff;">&lt;!DOCTYPE html&gt; &lt;html lang="es"&gt; </span></pre>
<pre><span style="color: #0000ff;"><span style="color: #ff0000;">&lt;head&gt; &lt;!--  Cabeceras para el navegador: title, meta-tags... --&gt; &lt;/head&gt;</span> </span></pre>
<pre><span style="color: #0000ff;">&lt;body&gt; <span style="color: #008000;"> </span></span></pre>
<pre><span style="color: #0000ff;"><span style="color: #008000;"> &lt;header&gt; &lt;!--  Encabezamiento del documento --&gt; &lt;h1&gt;Portada&lt;/h1&gt; &lt;/header&gt;</span> </span></pre>
<pre><span style="color: #0000ff;"><span style="color: #993300;"> &lt;nav&gt; &lt;!--  Menú principal --&gt; </span></span></pre>
<pre><span style="color: #0000ff;"><span style="color: #993300;"> &lt;header&gt; &lt;!--  Encabezamiento del menú principal --&gt; &lt;h1&gt;Menu&lt;/h1&gt; &lt;/header&gt; </span></span></pre>
<pre><span style="color: #0000ff;"><span style="color: #993300;"> &lt;p&gt;&lt;a href="/"&gt;Portada&lt;/a&gt;&lt;/p&gt; </span></span></pre>
<pre><span style="color: #0000ff;"><span style="color: #993300;"> &lt;!--  ... --&gt; &lt;p&gt;&lt;a href="/enlaces.html"&gt;Enlaces de interés&lt;/a&gt;&lt;/p&gt; </span></span></pre>
<pre><span style="color: #0000ff;"><span style="color: #993300;"> &lt;/nav&gt;</span> </span></pre>
<pre><span style="color: #0000ff;"> &lt;section&gt; <span style="color: #0000ff;"> &lt;!--  Segundo bloque de información--&gt; </span></span></pre>
<pre><span style="color: #0000ff;"><span style="color: #0000ff;"> &lt;header&gt; &lt;!--  Encabezamiento del segundo bloque --&gt; &lt;h1&gt;¿Donde estamos?&lt;/h1&gt; &lt;/header&gt;</span> </span></pre>
<pre><span style="color: #0000ff;"> Estamos en ... &lt;/section&gt; <span style="color: #808000;"> </span></span></pre>
<pre><span style="color: #0000ff;"><span style="color: #808000;"> &lt;section&gt; &lt;!--  Primer bloque de información--&gt; </span></span></pre>
<pre><span style="color: #0000ff;"><span style="color: #808000;"> &lt;header&gt; &lt;!--  Encabezamiento del primer bloque --&gt; </span></span></pre>
<pre><span style="color: #0000ff;"><span style="color: #808000;"> &lt;h1&gt;¿Quienes somos?&lt;/h1&gt; &lt;/header&gt; </span></span></pre>
<pre><span style="color: #0000ff;"><span style="color: #808000;"> Somos ... &lt;/section&gt;</span> <span style="color: #993366;"> </span></span></pre>
<pre><span style="color: #0000ff;"><span style="color: #993366;"> &lt;footer&gt; &lt;p&gt;&amp;copy; Creado 10/12/2010&lt;/p&gt; &lt;p&gt;&amp;copy; Copyright 2010&lt;/p&gt; &lt;/footer&gt;</span> </span></pre>
<pre><span style="color: #0000ff;"> &lt;/body&gt; &lt;/html&gt;</span></pre>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.webevolucion.com/programacion/curso-html5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configuración de Apache 2 &#8211; VirtualHost</title>
		<link>http://www.webevolucion.com/servidores-web/apache-configuracion/</link>
		<comments>http://www.webevolucion.com/servidores-web/apache-configuracion/#comments</comments>
		<pubDate>Mon, 09 May 2011 16:49:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Apache 2]]></category>
		<category><![CDATA[Servidores web]]></category>

		<guid isPermaLink="false">http://www.webevolucion.com/?p=134</guid>
		<description><![CDATA[<p>// 

</p>
<p>Una vez instalado nuestro servidor web con Linux ¿dónde encontramos las carpetas de configuración? ¿y los directorios para alojar nuestras páginas web?.</p>
<p>En la versión 10 de Ubuntu, vemos que viene instalado el servidor web Apache 2, MySQL y phpMyAdmin.</p>
<p>Sino vinieran instalados desde la consola de comandos:</p>
<p>aptitude install apache2</p>
<p>aptitude install mysql</p>
<p>aptitude install phpmyadmin</p>
<p>Directorio donde se encuentra <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.webevolucion.com/servidores-web/apache-configuracion/">Configuración de Apache 2 &#8211; VirtualHost</a></span>]]></description>
			<content:encoded><![CDATA[<p><script type="text/javascript">// <![CDATA[
 google_ad_client = "ca-pub-3170708476159266"; /* webevolucion */ google_ad_slot = "2580160560"; google_ad_width = 728; google_ad_height = 90;
// ]]&gt;</script><br />
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
</script></p>
<p>Una vez instalado nuestro servidor web con Linux ¿dónde encontramos las carpetas de configuración? ¿y los directorios para alojar nuestras páginas web?.</p>
<p>En la versión 10 de Ubuntu, vemos que viene instalado el servidor web Apache 2, MySQL y phpMyAdmin.</p>
<p>Sino vinieran instalados desde la consola de comandos:</p>
<p><strong><span style="color: #ff0000;">aptitude install apache2</span></strong></p>
<p><strong><span style="color: #ff0000;">aptitude install mysql</span></strong></p>
<p><strong><span style="color: #ff0000;">aptitude install phpmyadmin</span></strong></p>
<p>Directorio donde se encuentra la página por defecto:</p>
<p><strong><span style="color: #ff0000;">/var/www/index.html</span></strong></p>
<p>La carpeta de configuración de Apache:</p>
<blockquote>
<pre><span style="color: #ff0000;">juanjo@ubuntu:/etc/apache2$ ls -l
total 76
-rw-r--r-- 1 root root  8113 2010-04-13 22:20 apache2.conf
drwxr-xr-x 2 root root  4096 2011-06-19 06:47 conf.d
-rw-r--r-- 1 root root   725 2010-04-13 22:20 envvars
-rw-r--r-- 1 root root     0 2011-06-18 20:50 httpd.conf
-rw-r--r-- 1 root root 31063 2010-04-13 22:20 magic
drwxr-xr-x 2 root root 12288 2011-06-19 06:47 mods-available
drwxr-xr-x 2 root root  4096 2011-06-18 20:50 mods-enabled
-rw-r--r-- 1 root root   750 2010-04-13 22:20 ports.conf
drwxr-xr-x 2 root root  4096 2011-06-19 06:47 sites-available
drwxr-xr-x 2 root root  4096 2011-06-18 20:50 sites-enabled
juanjo@ubuntu:/etc/apache2$</span></pre>
</blockquote>
<p>Para ver la configuración básica de <strong>Apache2 </strong>tenemos que editar <strong>apache2.conf</strong>:</p>
<p><strong>sudo nano apache2.conf</strong></p>
<p>Si queremos ver la cofiguración de los dominios y directorios editaremos:</p>
<p><strong>sudo nano /etc/apache2/sites-available/default</strong></p>
<blockquote>
<pre><span style="color: #ff0000;">&lt;VirtualHost *:80&gt;
  ServerAdmin webmaster@localhost
  DocumentRoot /var/www
  &lt;Directory /&gt;
    Options FollowSymLinks
    AllowOverride None
  &lt;/Directory&gt;
  &lt;Directory /var/www/&gt;
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
  &lt;/Directory&gt;</span></pre>
<pre><span style="color: #ff0000;"><span style="color: #ff0000;">  ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
  &lt;Directory "/usr/lib/cgi-bin"&gt;
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
  &lt;/Directory&gt;
</span></span></pre>
<pre><span style="color: #ff0000;"><span style="color: #ff0000;">  ErrorLog /var/log/apache2/error.log

  # Possible values include: debug, info, notice, warn, error, crit,
  # alert, emerg.
  LogLevel warn

  CustomLog /var/log/apache2/access.log combined

  Alias /doc/ "/usr/share/doc/"
  &lt;Directory "/usr/share/doc/"&gt;
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
  &lt;/Directory&gt;
<div id="_mcePaste">&lt;/VirtualHost&gt;</div>

</span></span></pre>
</blockquote>
<p>Crear<strong> VirtualHost</strong>:</p>
<blockquote><p><span style="line-height: 14px;"><span style="color: #ff0000;"><br />
Listen 80</span></span></p>
<p><span style="color: #ff0000;">NameVirtualHost *:80</span></p>
<p><span style="line-height: 14px;"><span style="color: #ff0000;">&lt;VirtualHost *:80&gt;<br />
<span class="indent" style="padding-left: 1.5em; display: block;">DocumentRoot /var/www<br />
ServerName www.example2.org<br />
ServerAlias example2.org </span></span></span></p>
<p><span style="color: #ff0000;"># Other directives here</span></p>
<p><span style="color: #ff0000;">&lt;/VirtualHost&gt;</span></p>
<p><span style="font-family: 'Courier New', Courier, monospace; line-height: 14px;"><br />
</span></p></blockquote>
<p><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.webevolucion.com/servidores-web/apache-configuracion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySql Error 1364</title>
		<link>http://www.webevolucion.com/bases-de-datos/mysql-error-1364/</link>
		<comments>http://www.webevolucion.com/bases-de-datos/mysql-error-1364/#comments</comments>
		<pubDate>Thu, 17 Feb 2011 21:03:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Bases de datos]]></category>

		<guid isPermaLink="false">http://www.webevolucion.com/?p=191</guid>
		<description><![CDATA[<p>


</p>
<p>Error tratando de configurar la instancia de servidor en MySql 5.5 si les saca el error Nr. 1364 referente a un campo nuevo en la tabla user llamado &#8220;authentication_string&#8221;, parece que hay un bug ahí que deja ese campo nulo a sabiendas de que fue diseñado como not null y sin valor por defecto.</p>
<p>Lo que hay <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.webevolucion.com/bases-de-datos/mysql-error-1364/">MySql Error 1364</a></span>]]></description>
			<content:encoded><![CDATA[<p><script type="text/javascript"><!--
google_ad_client = "ca-pub-3170708476159266";
/* webevolucion */
google_ad_slot = "2580160560";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p>Error tratando de configurar la instancia de servidor en MySql 5.5 si les saca el error Nr. 1364 referente a un campo nuevo en la tabla user llamado &#8220;authentication_string&#8221;, parece que hay un bug ahí que deja ese campo nulo a sabiendas de que fue diseñado como not null y sin valor por defecto.</p>
<p>Lo que hay que hacer es colocarle un valor por defecto a ese dichoso campo:</p>
<p>1. Traten de configurar la instancia y cuando salga el error hagan clic en <strong>Skip</strong>.</p>
<p>2. Luego abran una &#8220;consola&#8221; (Ejecutar, cmd), y diríjanse a la carpeta &#8220;C:/Archivos de programa/MySQL/MySql Server 5.5/bin&#8221; y ejecuten &#8220;mysql -u root -p&#8221;</p>
<p>3. Luego estando en mysql&gt; seleccionan la base de datos mysql: use mysql</p>
<p>4. Luego para corregir el problema en ese campo le damos ALTER TABLE USER MODIFY AUTHENTICATION_STRING VARCHAR(100) DEFAULT &#8221;;</p>
<p>(le coloco varchar porque los campos text no permiten un valor default)</p>
<p>5. Luego si todo va bien, pueden ejecutar nuevamente el asistente de configuración de instancias y todo funcionará normal.<br />
<script type="text/javascript"><!--
google_ad_client = "ca-pub-3170708476159266";
/* webevolucion */
google_ad_slot = "2580160560";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.webevolucion.com/bases-de-datos/mysql-error-1364/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Servidor FTP vsftpd</title>
		<link>http://www.webevolucion.com/sistemas-operativos/servidor-ftp-vsftpd/</link>
		<comments>http://www.webevolucion.com/sistemas-operativos/servidor-ftp-vsftpd/#comments</comments>
		<pubDate>Sat, 05 Feb 2011 15:24:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sistemas operativos]]></category>

		<guid isPermaLink="false">http://www.webevolucion.com/?p=179</guid>
		<description><![CDATA[<p>


</p>
<p>Instalación:</p>

sudo apt-get install vsftpd libpam-pwdfile


<p>Configuración:</p>

sudo nano /etc/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
chroot_local_user=YES
virtual_use_local_privs=YES
guest_enable=YES
user_sub_token=$USER
local_root=/var/www/$USER
hide_ids=YES


<p> </p>
<p>Luego editamos el fichero:</p>
<p>sudo pico /etc/pam.d/vsftpd</p>
<p>Y modificamos de la siguiente manera (borra el resto de la configuración):</p>

auth required pam_pwdfile.so pwdfile /etc/ftpd.passwd
account required pam_permit.so


<p> </p>
<p>Reinstalación del servicio:</p>
sudo service vsftpd restart
<p>Creación de usuarios virtuales (solo necesitan FTP).</p>
<p>Creamos un archivo de texto vsftpd.usuarios con la siguiente estructura:</p>
usuario
clave
<p>Luego :</p>
<p>sudo db_load -T -t hash <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.webevolucion.com/sistemas-operativos/servidor-ftp-vsftpd/">Servidor FTP vsftpd</a></span>]]></description>
			<content:encoded><![CDATA[<p><script type="text/javascript"><!--
google_ad_client = "ca-pub-3170708476159266";
/* webevolucion */
google_ad_slot = "2580160560";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p>Instalación:</p>
<blockquote>
<h3><span style="color: #800000;">sudo apt-get install vsftpd libpam-pwdfile<br />
</span></h3>
</blockquote>
<p>Configuración:</p>
<blockquote>
<h3><span style="color: #800000;">sudo nano /etc/vsftpd.conf</span></h3>
<h3><span style="color: #800000;">anonymous_enable=NO<br />
local_enable=YES<br />
write_enable=YES<br />
local_umask=022<br />
chroot_local_user=YES<br />
virtual_use_local_privs=YES<br />
guest_enable=YES<br />
user_sub_token=$USER<br />
local_root=/var/www/$USER<br />
hide_ids=YES<br />
</span></h3>
</blockquote>
<blockquote><p><span style="color: #000000;"> </span></p></blockquote>
<p><span style="color: #000000;">Luego editamos el fichero:</span></p>
<blockquote><p><span style="color: #000000;"><strong>sudo pico /etc/pam.d/vsftpd</strong></span></p></blockquote>
<p><span style="color: #000000;">Y modificamos de la siguiente manera (borra el resto de la configuración):</span></p>
<blockquote>
<h3><span style="color: #000000;">auth required pam_pwdfile.so pwdfile /etc/ftpd.passwd<br />
account required pam_permit.so<br />
</span></h3>
</blockquote>
<p><span style="color: #000000;"> </span></p>
<p><span style="color: #000000;">Reinstalación del servicio:</span></p>
<h3><span style="color: #800000;">sudo service vsftpd restart</span></h3>
<p><span style="color: #000000;">Creación de usuarios virtuales (solo necesitan FTP).</span></p>
<p><span style="color: #000000;">Creamos un archivo de texto<strong> vsftpd.usuarios</strong> con la siguiente estructura:</span></p>
<h3 style="padding-left: 60px;"><span style="color: #000000;">usuario<br />
clave</span></h3>
<p><span style="color: #000000;">Luego :</span></p>
<blockquote><p><span style="color: #000000;">sudo db_load -T -t hash -f <strong> vsftpd.usuarios </strong>/etc/vsftpd_login.db<br />
</span></p></blockquote>
<p><span style="color: #000000;"> </span></p>
<p><script type="text/javascript"><!--
google_ad_client = "ca-pub-3170708476159266";
/* webevolucion */
google_ad_slot = "2580160560";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.webevolucion.com/sistemas-operativos/servidor-ftp-vsftpd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>vodafone</title>
		<link>http://www.webevolucion.com/denuncia/vodafone/</link>
		<comments>http://www.webevolucion.com/denuncia/vodafone/#comments</comments>
		<pubDate>Sat, 11 Dec 2010 16:38:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Denuncia]]></category>

		<guid isPermaLink="false">http://www.webevolucion.com/?p=175</guid>
		<description><![CDATA[<p>


</p>
<p>RECLAMACIONES VODAFONE</p>
<p>FAX: 607 131 937</p>
<p>DE: XXXXXX</p>
<p>MÓVIL: XXXXXXX</p>
<p>11/12/2010</p>
<p>En primer lugar dar la enhorabuena a la comercial que nos ESTAFÓ con unas condiciones de permanencia que para nada se parecen a lo que comentó cuando nos llamaron, o mejor dicho dejo de comentar porque no le interesaba.</p>
<p>Supongo que el departamento comercial estará cumpliendo órdenes, pero Si Vodafone necesita <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.webevolucion.com/denuncia/vodafone/">vodafone</a></span>]]></description>
			<content:encoded><![CDATA[<p><script type="text/javascript"><!--
google_ad_client = "ca-pub-3170708476159266";
/* webevolucion */
google_ad_slot = "2580160560";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p><strong>RECLAMACIONES VODAFONE</strong></p>
<p>FAX: 607 131 937</p>
<p>DE: <strong>XXXXXX</strong></p>
<p>MÓVIL: XXXXXXX</p>
<p>11/12/2010</p>
<p>En primer lugar dar la enhorabuena a la comercial que nos ESTAFÓ con unas condiciones de permanencia que para nada se parecen a lo que comentó cuando nos llamaron, o mejor dicho dejo de comentar porque no le interesaba.</p>
<p>Supongo que el departamento comercial estará cumpliendo órdenes, pero Si Vodafone necesita de este tipo de prácticas para poder incrementar su cuenta de resultados, ¡que lástima de empresa!.</p>
<p>Ya cuando nos vendieron la oficina Vodafone, NO nos dijeron que los aparatos de FAX no funcionarían, TAMPOCO nos dijeron que las llamadas a número FIJOS de tarificación especial del estilo 900, 901, 902, etc. se facturaría como llamadas a móviles. Siempre cuentan lo que les interesa, tienen unos de los peores departamentos de atención al cliente según la OCU, en cuento a precios no son precisamente los más baratos. Así que supongo que para que el negocio les siga funcionando … INTENTAR ENGAÑAR AL CLIENTE es la solución que se le ocurrió, sobre todo si somos personas CONFIADAS como yo que procura fiarse de la palabra dada y la buena voluntad de la gente, ”aunque sean comerciales de una empresa de telefonía”.</p>
<p>Hace un año nos enviaron facturas por importe de 500€ por conexión a Internet de 2 días desde el extranjero, con una reclamación que me duró meses y muchas horas al teléfono 122 para intentar que alguien en su sano juicio me indicara que había sido un abuso y un error por su parte. Al final menos mal, que alguien de Vodafone vió la luz y reconoció el abuso y error, de 500€ pasó a 30€.</p>
<p>Cuando ya tenía decidido irme a Orange con mi número de móvil xxxxxx654, su departamento comercial de me llamó para hacer una contra oferta, se trataba de darme el mismo móvil que me ofrecía Orange y una tarifa parecida, le comenté que mi idea era llevarme en diciembre el otro móvil que tengo asociado al teléfono fijo del ADSL a Orange y que para quedarme en Vodafone me tendrían que cambiar los dos terminales y poner una tarifa parecida.</p>
<p>Comercial: “… tranquilo cuando en diciembre te venza el contrato de la línea asociada al fijo, nos llamas y te cambiamos el terminal, ahora no puedo hacertelo.”</p>
<p>Yo: “… ¿las llamadas a fijos las seguiré teniendo gratis por tener el ADSL con vosotros?”</p>
<p>Comercial : … “Sí, eso lo tienes por tener el ADSL y el fijo asociado a un móvil de Vodafone, además te hago un 50% de descuento en el importe de las llamadas (ya que Orange mediante un módulo de 5€ me permitía llamadas internas gratis cosa que Vodafone no podía ponerme con el plan que me ofertaba)”</p>
<p><strong>La primera en la frente:</strong></p>
<p>En la facturación a partir del cambio de plan de precios a la que me pasaron, las llamadas a números fijos se están cobrando. Llamo al 122 y me indican que el plan de precios que tengo asociado no permite llamadas a fijos gratis. Le comento que tengo el ADSL y mi número fijo asociado al móvil que la comercial NUNCA me dijo que eso desaparecería y le recalqué que las llamadas a fijo gratis las quería, <strong>y me responde que las llamadas si son GRATIS pero para el que me llama (acojonante)</strong>.</p>
<p><strong>La segunda en la frente:</strong></p>
<p>Yo: pregunto por el día que  me vence la línea asociada al fijo.</p>
<p>122: será en Octubre del 2011,</p>
<p>Yo: … ¿cómo? … si esa línea hace un mes tenía solo permanencia hasta diciembre del 2010.</p>
<p>122: Ya pero como usted renovó su móvil de la línea xxxxxx654 ahora automáticamente todas las permanencias de líneas móviles , ADSL, Datos, etc. se prorrogan a una nueva fecha.</p>
<p>Yo: … sigo flipando!, si la comercial me habló de que le llamara en diciembre para renovar el otro móvil, ¿y si me doy de baja que pasa?</p>
<p>122: además por cada producto que dé de baja sufrirá una penalización de 100€. Y le cobraremos todos los descuentos que le estamos haciendo.</p>
<p>Yo: .. y si te devuelvo el móvil?</p>
<p>122: … ya no puede porque pasó más de un mes.</p>
<p>Yo: … pero esto suena a chiste, que abuso por parte de Vodafone, ¿no?</p>
<p>122: … ufff esto no es nada, yo llevo poco tempo trabajando aquí y se están haciendo auténticas animaladas.</p>
<p>122: … además le tengo que decir que le han puesto renovación automática, es decir, que sino dice nada le endosarán otro año más sin que usted se de cuenta.</p>
<p>Yo: … me pillizcas y no siento nada, que pedazo cabrones, y eso me lo puedes quitar tu.</p>
<p>122: , sí ahora mismo lo hago.</p>
<p>Supongo que como bien decía el operador del 122, lo mío debe ser un caso de 4 euros con todo lo que deben estar SANGRANDO a su clientela, planes de precios retorcidos, facturas ilegibles,  cuotas mínimas por todos lados, … y para colmo, un departamento comercial experto en ocultar información y engañar incluso si es necesario para ponerse la medalla de que conseguí retener al cliente, que nos intenté engañar alguien que no tienen ni para comer se puede entender, pero que lo haga una empresa que debe tener la cuenta de resultados donde le deben sobrar ceros por todos lados pues ya no parece tan justo, ¿si movistar lo hace yo lo hago? ¿si orange también lo hace, yo también lo hago?, … triste pero son ustedes las telecos las empresas más barriobajeras que hay en el mercado.</p>
<p>Seguramente que el contrato, ese de letra pequeña, ilegible y retorcido les de a ustedes la razón, pero como a pesar de eso me siento UNA VEZ MÁS ESTAFADO POR VODAFONE, y mucho peor con el posterior trato y explicaciones ofrecidas por ustedes remitiendose siempre al contrato y nunca reconociendo la artimaña comercial.</p>
<p>Les escribo la leyenda que viene al pie de sus facturas:</p>
<p>&lt;&lt; En <strong>Vodafone</strong> tenemos claro el compromiso de seguir trabajando por y para su empresa. Por eso, contamos con <strong>verdaderos expertos en productos y servicios de comunicaciones móviles</strong> que le ofrecen siempre la mejor solución para su empresa.&gt;&gt;</p>
<p>Y les animo a cambiarla porque tendría que decir algo así como:</p>
<p>&lt;&lt; En <strong>Vodafone</strong> tenemos claro los objetivos de nuestra empresa. Por eso, contamos con<strong> el 122 la peor plantilla de atención al cliente del otro lado del charco </strong>con lo que nos ahorramos una pasta, <strong>y con expertos comerciales </strong>que le ofrecen siempre la mejor solución para Vodafone.&gt;&gt;</p>
<p><script type="text/javascript"><!--
google_ad_client = "ca-pub-3170708476159266";
/* webevolucion */
google_ad_slot = "2580160560";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.webevolucion.com/denuncia/vodafone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Donde esta php.ini en Linux</title>
		<link>http://www.webevolucion.com/sistemas-operativos/donde-esta-php-ini-en-linux/</link>
		<comments>http://www.webevolucion.com/sistemas-operativos/donde-esta-php-ini-en-linux/#comments</comments>
		<pubDate>Tue, 23 Nov 2010 11:56:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Sistemas operativos]]></category>

		<guid isPermaLink="false">http://www.webevolucion.com/?p=172</guid>
		<description><![CDATA[<p>


</p>
<p>Para saber donde esta el archivo php.ini en linux (ubuntu en mi caso). Se puede buscar con la siguiente instrucción: sudo find / -name php.ini el resultado que me aparece es: /etc/php5/apache2/php.ini /etc/php5/cgi/php.ini ¿y como se cual es el correcto? (me tinca donde esta el apache) Una forma de averiguarlo es realizar los cambios que necesito <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.webevolucion.com/sistemas-operativos/donde-esta-php-ini-en-linux/">Donde esta php.ini en Linux</a></span>]]></description>
			<content:encoded><![CDATA[<p><script type="text/javascript"><!--
google_ad_client = "ca-pub-3170708476159266";
/* webevolucion */
google_ad_slot = "2580160560";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p>Para saber donde esta el archivo php.ini en linux (ubuntu en mi caso). Se puede buscar con la siguiente instrucción: sudo find / -name php.ini el resultado que me aparece es: /etc/php5/apache2/php.ini /etc/php5/cgi/php.ini ¿y como se cual es el correcto? (me tinca donde esta el apache) Una forma de averiguarlo es realizar los cambios que necesito en la carpeta de apache. Hice los un cambio en la configuracion, reinicie Apache y efectivamente la ruta correcta es: /etc/php5/apache2/php.ini Para reiniciar Apache en ubuntu sudo /etc/init.d/apache2 restart</p>
<p><script type="text/javascript"><!--
google_ad_client = "ca-pub-3170708476159266";
/* webevolucion */
google_ad_slot = "2580160560";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.webevolucion.com/sistemas-operativos/donde-esta-php-ini-en-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automatizar enviós de ficheros por Ftp</title>
		<link>http://www.webevolucion.com/sistemas-operativos/automatizar-envios-de-ficheros-por-ftp/</link>
		<comments>http://www.webevolucion.com/sistemas-operativos/automatizar-envios-de-ficheros-por-ftp/#comments</comments>
		<pubDate>Mon, 22 Nov 2010 21:56:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Sistemas operativos]]></category>

		<guid isPermaLink="false">http://www.webevolucion.com/?p=168</guid>
		<description><![CDATA[<p>


</p>
Esta vez necesito enviar de una forma automática y programada un determinado fichero. Para ello tengo a mi disposición un espacio de almacenamiento en un servidor Ftp.
<p>En un primer lugar opto por utilizar el cliente Ftp de Ms-DOS que aun disponen el Windows.</p>
<p>Mi idea es seguir los siguientes pasos:</p>
<p>1.- Comprimo el fichero a enviar.</p>
<p>2.- Envió el <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.webevolucion.com/sistemas-operativos/automatizar-envios-de-ficheros-por-ftp/">Automatizar enviós de ficheros por Ftp</a></span>]]></description>
			<content:encoded><![CDATA[<p><script type="text/javascript"><!--
google_ad_client = "ca-pub-3170708476159266";
/* webevolucion */
google_ad_slot = "2580160560";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<div><script src="http://s0.wp.com/wp-content/plugins/adverts/adsense.js?m=1253160243g&amp;1" type="text/javascript"></script>Esta vez necesito enviar de una forma automática y programada un determinado fichero. Para ello tengo a mi disposición un espacio de almacenamiento en un servidor Ftp.</div>
<p>En un primer lugar opto por utilizar el cliente Ftp de Ms-DOS que aun disponen el Windows.</p>
<p>Mi idea es seguir los siguientes pasos:</p>
<p>1.- Comprimo el fichero a enviar.</p>
<p>2.- Envió el fichero comprimido.</p>
<p>3.- Elimino el fichero comprimido.</p>
<p>4.- Ya esto listo para otra ejecución!</p>
<p>Y para ello he desarrollado los siguientes ficheros:</p>
<pre>UpLoad_File.bat:</pre>
<pre>C:\Utility\ExportZIP\7ZA465\7za.exe a -mx9 C:\Utility\ExportZIP\ExportFile.zip @C:\Utility\ExportZIP\FileList.txt</pre>
<pre>ftp -s:C:\Utility\ExportZIP\FTPConect.TXT &amp;gt; C:\Utility\ExportZIP\Log.txt</pre>
<pre>del C:\Utility\ExportZIP\ExportFile.zip</pre>
<p>Realizo una compresión con 7Zip de los ficheros que deseo, para ello utilizo una lista contenida en el “FileList.txt”:</p>
<pre>FileList.txt:</pre>
<pre>C:\Dir_01\Backup_Dir\File_Backup_01.dmp</pre>
<pre>C:\Dir_01\Backup_Dir\File_Backup_01.log</pre>
<p>Para tener una configuración rápida y sencilla escribo un “script”, FTPConect.txt:</p>
<pre>FTPConect.txt:</pre>
<pre>OPEN ftp://ftp.xn---server-/?-9ra.xn---com-9ia-? 21</pre>
<pre>¿-User-?</pre>
<pre>¿-Password-?</pre>
<pre>cd Intercambio</pre>
<pre>cd Dumps</pre>
<pre>binary</pre>
<pre>hash</pre>
<pre>lcd C:\Utility\ExportZIP\</pre>
<pre>put ExportFile.zip</pre>
<pre>bye</pre>
<p>Y para posteriores verificaciones, guardo la salida e pantalla en el fichero “Log.txt”.</p>
<p>Para que esto se ejecute automáticamente, simplemente defino un tarea programada de Windows que ejecute el fichero “UpLoad_File.bat” a la hora deseada y listo!</p>
<p>Bien, hasta aquí todo correcto.</p>
<p>La teoría (y casi la practica) nos dice que esto totalmente correcto y funciona.</p>
<p>Pues bien, a la hora de probarlo me encuentro con una sorpresa, la conexión se abre correctamente y comienza a enviar, pero se queda como bloqueado, sin subir ni un solo bit.</p>
<p>Y me pongo la gorra de investigador y realizo las siguientes pruebas:</p>
<p>Realizo la conexión Ftp manualmente e intento subir el fichero, la conexión se queda congelada.</p>
<p>Vuelvo a realizar la conexión Ftp manualmente pero esta vez, nada mas conectarme intento ver que fichero existe en el directorio remoto (ls), el comando no responde.</p>
<p>Tercer intento de conexión, esta vez utilizo mi cliente Ftp preferido, FileZilla. Y el señorito se conecta sin problema!!!</p>
<p>Desperado!!! Reviso el log que produce FileZilla cuando trabaja en una conexión. Y llego a la conclusión de que mi fantástico cliente Ftp, el cual tengo configurado en “Modo de transferencia” “Por defecto”, el sólito se cambia a modo “Pasivo” (comando Ftp “PASV”).</p>
<p>Eso yo no lo tenia previsto en mi trasmisión Ftp! Asi que intento cambiar el modo en script pero el comando/cliente Ftp del Ms-DOS no permite el cambio de transferencia así que debo cambiar de cliente Ftp y debo encontrar uno que me permita ejecutarle de forma autónoma mediante scripts.</p>
<p><img title="Captura_02" src="http://deepdarkprocess.files.wordpress.com/2009/08/captura_02.jpg?w=164&amp;h=34" alt="Captura_02" width="164" height="34" />Desgraciadamente FileZilla aun no permite hacerlo, pero hay uno igual de bueno (más o menos) e igual de barato (gratis), es WinSCP (http://winscp.net/)</p>
<p>Además con este cliente Ftp me ahorrare alguna línea del script ya que este obliga a configurar una conexión previa a modo de “bookmark”.</p>
<p>Y los comandos, los básicos, son idénticos al estándar Ftp.</p>
<p>Así que el script quedo de la siguiente manera:</p>
<pre>UpLoad_File.bat:</pre>
<pre>C:\Utility\ExportZIP\7ZA465\7za.exe a -mx9 C:\Utility\ExportZIP\ExportFile.zip @C:\Utility\ExportZIP\FileList.txt</pre>
<pre>C:\Utility\ExportZIP\WinSCP\winscp419.exe /script=c:\Utility\ExportZIP\FTPConect.TXT del C:\Utility\ExportZIP\ExportFile.zip</pre>
<pre>FTPConect.TXT:</pre>
<pre>open Mi_Conextion_FTP</pre>
<pre>put c:\Utility\ExportZIP\ExportFile.zip</pre>
<pre>bye</pre>
<p>Links interesantes:</p>
<p><a href="http://www.ignside.net/man/ftp/pasivo.php">http://www.ignside.net/man/ftp/pasivo.php</a></p>
<p><a href="http://es.wikipedia.org/wiki/File_Transfer_Protocol">http://es.wikipedia.org/wiki/File_Transfer_Protocol</a></p>
<p><a href="http://filezilla-project.org/">http://filezilla-project.org/</a></p>
<p><a href="http://winscp.net/">http://winscp.net/</a></p>
<p><script type="text/javascript"><!--
google_ad_client = "ca-pub-3170708476159266";
/* webevolucion */
google_ad_slot = "2580160560";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.webevolucion.com/sistemas-operativos/automatizar-envios-de-ficheros-por-ftp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Panel de Control para servidores web. Comparativa ISPConfig y EHCP</title>
		<link>http://www.webevolucion.com/software-erp-crm-gestion-herramientas/comparativa-ispconfig-y-ehcp/</link>
		<comments>http://www.webevolucion.com/software-erp-crm-gestion-herramientas/comparativa-ispconfig-y-ehcp/#comments</comments>
		<pubDate>Fri, 19 Nov 2010 10:07:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.webevolucion.com/?p=164</guid>
		<description><![CDATA[<p>


</p>
<p>ISPConfig </p>
<p>Well I have ISPConfig running on my VPS.. Everything seems fine, finally. My advice, don’t go into the installation thinking it’s going to be easy – you’re better off going with a managed VPS and a pre-installed manager if you have that mindset.</p>
<p>ISPConfig requires loads of packages, so I think you better stick to something <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.webevolucion.com/software-erp-crm-gestion-herramientas/comparativa-ispconfig-y-ehcp/">Panel de Control para servidores web. Comparativa ISPConfig y EHCP</a></span>]]></description>
			<content:encoded><![CDATA[<p><script type="text/javascript"><!--
google_ad_client = "ca-pub-3170708476159266";
/* webevolucion */
google_ad_slot = "2580160560";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p><strong>ISPConfig </strong></p>
<p>Well I have ISPConfig running on my VPS.. Everything seems fine, finally. My advice, don’t go into the installation thinking it’s going to be easy – you’re better off going with a managed VPS and a pre-installed manager if you have that mindset.</p>
<p>ISPConfig requires loads of packages, so I think you better stick to something like Debian or Ubuntu so you have apt-get. Maybe not, I’m just most familiar with Debian and Ubuntu, besides Slackware.</p>
<p>I had a lot of issues with ProFTPD and Apache. ProFTPD I forgot to manually edit some configuration or something, not sure but I know it didn’t work correctly until I made some modifications. Apache didn’t want to work with ISPConfig for awhile, mainly because I forgot to load the PHP5 module. There were also a lot of other issues, I’m not going to get into it.. I should have followed the “Perfect Server” tutorial, I didn’t but I ended up doing most everything in that tutorial anyway</p>
<p>ISPConfig has to compile, and to compile it needs all its dependencies, and the configuration has to be somewhat perfect. It’s definitely not an “out of the box” solution. I think it would have been easier for me if I was just setting up this site, to do things manually to be honest. Since I do want to let other users on my server, I needed a manger. ISPConfig as far as security, I think it has it covered. Anti-Virus, Spam Assassin, and firewalls.</p>
<p>I’m not really impressed with the GUI too much. It works, but that’s about it. I chose ISPConfig mainly for security, I hope I was right.</p>
<p><strong>EHCP – Easy Hosting Control Panel</strong></p>
<p>EHCP<br />
This is relatively new. It only works on Debian/Ubuntu servers. It uses an install script – where everything is done automagically. You can have everything working in minutes, so long as your OS install is clean. Right out of the box magic. You really don’t need to have any form of Linux knowledge to get this up and running. I have to say, it lives up to its name.</p>
<p>The GUI works, it’s nothing spectacular, but it works. It doesn’t have quite as many options as ISPConfig, such as setting up shells for users. I wish it had this feature. It has domain tools, FTP, e-mail, etc. Everything works.</p>
<p>The creator of this hosting control panel must not be a native English speaker – so it needs some fine tuning from someone who speaks native English. That is a major drawback if you’re trying to sell hosting. Will your users think you’re professional if your control panel has incorrect grammar throughout the entire panel? I think not. Also, I really can’t tell if this panel would be easy to exploit, but it sort of looks that way. I could be mistaken.</p>
<p>EHCP includes “Easy Install Scripts” which install some things like phpBB automatically. Sort of like “fantastico”, but not fully automated. I still had to manually input the MySQL database information when I installed phpBB.</p>
<p>Overall, I was pretty satisfied with EHCP. There’s nothing really wrong with it, I think it just needs some fine tuning and it could be a great open source control panel. Some more features could be added to make it better, and maybe a better GUI is in order.</p>
<p>Conclusion</p>
<p>Don’t have any knowledge of Linux, have Ubuntu or Debian installed and want to get your site up and running quick? Choose <span style="color: #ff0000;"><strong>EHCP</strong></span>.</p>
<p>Want some extra features and possibly something more rock solid? Choose <strong><span style="color: #ff0000;">ISPConfig.</span></strong></p>
<p>I’m not mentioning <strong><span style="color: #ff0000;">VHCS</span></strong> here because people have reported exploit issues with it, and I didn’t try it because of that.</p>
<p><script type="text/javascript"><!--
google_ad_client = "ca-pub-3170708476159266";
/* webevolucion */
google_ad_slot = "2580160560";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.webevolucion.com/software-erp-crm-gestion-herramientas/comparativa-ispconfig-y-ehcp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

