tag:blogger.com,1999:blog-91731105614685192352024-03-13T04:11:52.869+01:00El dia a dia de un webmaster <em><sub>Soluciones fáciles a problemas habituales</sub></em>J. Pijuanhttp://www.blogger.com/profile/04045189250024504692noreply@blogger.comBlogger10125tag:blogger.com,1999:blog-9173110561468519235.post-45731758325556034632018-09-10T08:30:00.000+02:002018-09-10T08:30:07.534+02:00Cómo reducir un archivo Excel (y saber porque ocupa tanto!)<span style="font-family: Trebuchet MS, sans-serif;">Si trabajáis habitualmente con archivos Excel es posible que tengáis, sin sentido alguno, archivos anomalamente muy grandes. Lógicamente si en el archivo hay insertadas imágenes, sonidos o vídeos, el archivo no se podrá reducir mucho, ya que estos archivos ya están comprimidos y/o no se pueden reducir más.</span><br />
<br />
<span style="font-family: Trebuchet MS, sans-serif;">Hay varias formas de reducir este tamaño; por ejemplo guardar el archivo en el formato <b>XLSX o bien en XLSB</b> (en binario). Este ultimo guarda el archivo en <u>formato binario</u>, excluyendo todo el formato e información que se almacena en estructuras XML. Otra opción es copiar el contenido del archivo a un Excel nuevo copiando y pegando (o pegando sin formato)</span><br />
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span>
<span style="font-family: Trebuchet MS, sans-serif;">Aun así, es posible que el archivo ocupe bastante. A menudo <b>los formatos de estilo almacenados en celdas vacías incrementan el espacio del archivo</b>, por lo que borrando el formato de las celdas vacías reducirá el tamaño del archivo.</span><br />
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span>
<span style="font-family: Trebuchet MS, sans-serif;">Pero... ¿Cómo saber en un archivo Excel con varias (o cientos) de hojas las que más ocupan? Aquí va el truco ... </span><br />
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span>
<span style="font-family: Trebuchet MS, sans-serif;">Primero hay que <b>renombrar el archivo XLSX a ZIP.</b> Los archivos XLSX son por si archivos comprimidos que contienen, en varios archivos, todo el contendio del libro Excel. Podréis investigar la estructura de carpetas y saber que archivos ocupan más...</span><br />
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span>
<span style="font-family: Trebuchet MS, sans-serif;">Dentro del archivo, <b>en la carpeta xl\worksheets</b> vereis, por cada hoja un archivo nombrado como sheetXX.xml y el espacio ocupado sin comprimir/comprimido. </span><br />
<span style="font-family: Trebuchet MS, sans-serif;">En el ejemplo veréis una hoja de Excel con 87 Hojas y concretamente la 85 que ocupa +300Mb descomprimida.</span><br />
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjs96BsQoKyssd3M8mLziEjDuyEyMG5I9KNkkrEsbgaRqK8w6A3ZAL6AuyYe79aXivu-RM3qwZ1Gb4YOLHy0bU8L9Zblz3KiewyU2jInqfcqDoogxkPvWxRpw_Xx6AWCII3mRd46OTJJn0-/s1600/EXCEL+XLSX+RENOMBRADO+ZIP.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><span style="font-family: Trebuchet MS, sans-serif;"><img border="0" data-original-height="287" data-original-width="709" height="258" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjs96BsQoKyssd3M8mLziEjDuyEyMG5I9KNkkrEsbgaRqK8w6A3ZAL6AuyYe79aXivu-RM3qwZ1Gb4YOLHy0bU8L9Zblz3KiewyU2jInqfcqDoogxkPvWxRpw_Xx6AWCII3mRd46OTJJn0-/s640/EXCEL+XLSX+RENOMBRADO+ZIP.jpg" width="640" /></span></a><br />
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis30fwj5YhA1QNGw9aUKJ7Gen35W7EKABEk6h_jQzE5bbVI-nblmYj1NdNEgROxj69u_1JuJx6M7Wg3UB3ZgLuZp3As1tECGRr8FpJzmeDfVyTffl4hiVCo5S0_YfWGtsoYlRPwyzVmX1N/s1600/EXCEL+XLSX+SHEETS.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><span style="font-family: Trebuchet MS, sans-serif;"><img border="0" data-original-height="412" data-original-width="834" height="316" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis30fwj5YhA1QNGw9aUKJ7Gen35W7EKABEk6h_jQzE5bbVI-nblmYj1NdNEgROxj69u_1JuJx6M7Wg3UB3ZgLuZp3As1tECGRr8FpJzmeDfVyTffl4hiVCo5S0_YfWGtsoYlRPwyzVmX1N/s640/EXCEL+XLSX+SHEETS.jpg" width="640" /></span></a><br />
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span>
<span style="font-family: Trebuchet MS, sans-serif;">Para saber a que hoja se corresponde cada archivo, está la relación en el archivo workbook.xml. Vereis en formato XML como se relaciona ID del archivo (85 en mi caso) con el nombre que tiene la Hoja de Excel.</span><br />
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSC4ofjPI-7i0Um2_vfPnWWOSNgbv4PPgJDTJ9WXpJwOlOOLLXHIPppCzPQvPzApBz4Wxc4wjJpb-0dc06ODOGfaxw70uLstexf1BfXDrcox0G-h-R6FG5zZWL5Nwoh_qzpNGL0RggDIc8/s1600/workbook+xml.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Trebuchet MS, sans-serif;"><img border="0" data-original-height="375" data-original-width="772" height="310" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSC4ofjPI-7i0Um2_vfPnWWOSNgbv4PPgJDTJ9WXpJwOlOOLLXHIPppCzPQvPzApBz4Wxc4wjJpb-0dc06ODOGfaxw70uLstexf1BfXDrcox0G-h-R6FG5zZWL5Nwoh_qzpNGL0RggDIc8/s640/workbook+xml.jpg" width="640" /></span></a></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<span style="font-family: Trebuchet MS, sans-serif;">En el ejemplo sólamente quitando el formato de las celdas vacías logré reducir un Excel de 57Mb a 1,2Mb sin perder las fórmulas, información o el formato utilizado en las celdas utilizadas. </span><br />
<span style="font-family: Trebuchet MS, sans-serif;">En primer lugar convertí la hoja Excel XLS a formato XLSX. Renombre el archivo a ZIP y revise que hojas ocupaban mas (carpeta xl/worksheets dentro del archivo comprimido). Borré el formato de las celdas vacías y guardé el documento de nuevo en formato binario XLSB.</span><br />
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrK_S-atN2fTlh4UPTL1LhVVPurcL4AdxmwdrSZJVpmS6NN_cYGr0GsXQg6ZrNQ9jAYKhGjBepd9W-u068aqHJ0p7VEvRutk0grYQTl9TPJ-zTfZRttg2VpcT_fU-Y5FL9DfPpTVkb6hf7/s1600/archivos.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Trebuchet MS, sans-serif;"><img border="0" data-original-height="142" data-original-width="700" height="128" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrK_S-atN2fTlh4UPTL1LhVVPurcL4AdxmwdrSZJVpmS6NN_cYGr0GsXQg6ZrNQ9jAYKhGjBepd9W-u068aqHJ0p7VEvRutk0grYQTl9TPJ-zTfZRttg2VpcT_fU-Y5FL9DfPpTVkb6hf7/s640/archivos.jpg" width="640" /></span></a></div>
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span>
<span style="font-family: Trebuchet MS, sans-serif;">Estos archivos crecen especialmente al importar datos de otras fuentes y pegarlos en la hoja de datos (palabras clave, campañas adwords, reports del Analytics, ...)</span><br />
<br />J. Pijuanhttp://www.blogger.com/profile/04045189250024504692noreply@blogger.com0tag:blogger.com,1999:blog-9173110561468519235.post-5673365407393451722018-05-09T20:41:00.002+02:002018-05-09T20:41:26.774+02:00Error CredSSP al conectarse por Terminal Server<div style="text-align: left;">
Después de la actualizacion de Windows 10 de hoy (08/05/2018) es muy posible que os aparezca este error al intentar conectar a otras maquinas por Terminal Server.</div>
<div style="text-align: left;">
<a href="https://i.imgur.com/PRqdZne.png" imageanchor="1"><img border="0" data-original-height="193" data-original-width="546" src="https://i.imgur.com/PRqdZne.png" /></a></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Esta actualizacion resuelve una vulnerabilidad que podria ejecutar codigo en una maquina no actualizada.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
En la actualizacion de hoy, se ha modificado un valor por defecto de esta directiva pasando de Vulnerable a Mitigado mediante una clave de registro.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Si en nuestro sistema esta clave no existe aparece el error anterior.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
PARA RESOLVER EL PROBLEMA podemos, manualmente añadir dicha clave mediante el editor de Registro. La ruta, clave y valor en cuestion es:</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters
</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Añadir un valor de tipo DWORD, con el valor "AllowEncryptionOracle" como informacion del valor "2"</div>
<div style="text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://i.imgur.com/MF8eVjw.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="410" data-original-width="800" height="324" src="https://i.imgur.com/MF8eVjw.png" width="640" /></a></div>
<div style="text-align: left;">
<br /></div>
J. Pijuanhttp://www.blogger.com/profile/04045189250024504692noreply@blogger.com0tag:blogger.com,1999:blog-9173110561468519235.post-24314757082857819652015-08-12T16:49:00.003+02:002015-08-20T09:33:20.130+02:00Error DNS_PROBE_FINISHED_NXDOMAINEs posible que os topeis con este error al intentar acceder a algunas paginas web. Independientemente del navegador el error es parecido, no podiendo cargar el contenido externo al no poder resolver el nombre del dominio (wink wink, pista pista).<br />
<br />
Puesto que el origen puede ser distinto en cada caso, os pongo a continuacion una recopilacion de varias soluciones. Pongo primero las mas rebuscadas, ya que las lógicas son muy... logicas.<br />
<br />
- Hacer una purga de los registros DNS del sistema<br />
<br />
<ol>
<li>Abrir ventana de comandos de windows: Tecla Windows + R y en ejecutar "cmd"</li>
<li>Ejecutar: netsh winsock reset catalog</li>
<li>Reiniciar (meh...)</li>
</ol>
<div>
<br /></div>
<div>
- Reiniciar el servicio "Cliente DNS" de windows</div>
<div>
<ol>
<li>Tecla Windows + R y "services.msc"</li>
<li>Buscar el servicio "Cliente DNS"</li>
<li>Boton derecha / Reiniciar</li>
</ol>
<div>
<br /></div>
<div>
Otras soluciones algo más lógicas y que os pueden funcionar tambien:</div>
<div>
<br /></div>
<div>
- Reiniciar el Router / Servicio DHCP / Renovar concesion IP de nuestro equipo</div>
<div>
<br /></div>
<div>
- Borrar cookies, historial y cache del navegador (meh...)</div>
</div>
<br />
- Revisar las DNS que utilizais para navegar (Panel de control / Redes / Propiedades / Protocolo TCP-IP) y probar/cambiarlas por ejemplo por las de Google; 8.8.8.8 y 8.8.4.4<br />
<br />
OJO! Es posible que actualizando el .NET Framework no funcione y os de errores tipo 0xC0000005 pero mirando el error_log de la instalación el problema puede venir a que no puede descargarse los paquetes de la instalación y de ahí que salga este error también.<br />
<br />
Si tenéis alguna solución mas, añadidla a los comentarios, gracias !!!J. Pijuanhttp://www.blogger.com/profile/04045189250024504692noreply@blogger.com0tag:blogger.com,1999:blog-9173110561468519235.post-15378811623918626692013-06-07T23:41:00.000+02:002013-06-07T23:41:00.170+02:00El servidor no interpreta código en PHPJusto después de una actualización en el servidor puede surgir el problema de que el codigo de vuestra pagina en PHP no se interprete correctamente. He aquí algunos de los motivos (y su solución!).<br />
<br />
- Cambio en la versión de PHP o Apache. Por defecto, algunas instalaciones nuevas de Apache, des-habilitan por defecto la ejecución de código PHP en directorios personales. La solución es fácil, comentar la directiva que por defecto lo bloquea. La puedes encontrar (normalmente) en:<br />
<span style="background-color: white; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px;"><br /></span>
<span style="background-color: white; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px;"><b>/etc/apache2/mods-available/php5.conf</b></span><br />
<span style="background-color: white; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px;"><br /></span>
<span style="background-color: white;"><span style="font-family: Arial, Liberation Sans, DejaVu Sans, sans-serif;"><span style="font-size: 14px; line-height: 18px;">Hay que comentar (con #'s delante de la linea) este código (al final del archivo):</span></span></span><br />
<span style="background-color: white; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px;"><br /></span>
<span style="background-color: white; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 18px; white-space: pre;"> #<IfModule mod_userdir.c>
# <Directory /home/*/public_html>
# php_admin_value engine Off
# </Directory>
#</IfModule></span><br />
<span style="background-color: white; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 18px; white-space: pre;"><br /></span>
<span style="background-color: white;"><span style="font-family: Arial, Liberation Sans, DejaVu Sans, sans-serif;"><span style="font-size: 14px; line-height: 18px;">Se puede forzar la interpretación del código en un directorio concreto mediante el archivo htaccess del directorio, añadiendo:</span></span></span><br />
<span style="background-color: white; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 18px; white-space: pre;"><br /></span>
<span style="background-color: white; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 18px; white-space: pre;"> php flag engine on</span><br />
<span style="background-color: white; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 18px; white-space: pre;"><br /></span>
<span style="background-color: white; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px;">Nuestra configuracion de apache debe permitir el override de configuración (</span><span style="background-color: white; font-family: verdana, arial, helvetica, sans-serif; font-size: 14px;">"AllowOverride Options" or "AllowOverride All" mas info <a href="http://php.net/manual/en/configuration.changes.php" target="_blank">aqui</a>).</span><br />
<span style="background-color: white; font-family: verdana, arial, helvetica, sans-serif; font-size: 14px;"><br /></span><span style="background-color: white; font-family: verdana, arial, helvetica, sans-serif; font-size: 14px;">- Codificación de los archivos en PHP. Asegurate de que la codificación de los archivos (UTF-8, UTF-16, ANSI) sea compatible. Si no lo es, no sabe como "leerlos", no se interpretan y se muestran como texto.</span><br />
<span style="background-color: white; font-family: verdana, arial, helvetica, sans-serif; font-size: 14px;"><br /></span>
<span style="font-family: verdana, arial, helvetica, sans-serif;"><span style="font-size: 14px;">- Por último, lo más lógico, asegurate que el servicio esta en marcha correctamente, las carpetas tienen los permisos adecuados y revisar que en el error_log no haya otro tipo de incidencia.</span></span><br />
<span style="background-color: white; font-family: verdana, arial, helvetica, sans-serif; font-size: 14px;"><br /></span>
<span style="background-color: white; font-family: verdana, arial, helvetica, sans-serif; font-size: 14px;"><br /></span>
<span style="background-color: white; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 18px; white-space: pre;"><br /></span>
<span style="background-color: white; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 18px; white-space: pre;"><br /></span>
<span style="background-color: white; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 18px; white-space: pre;"><br /></span>
<span style="background-color: white; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px;"><br /></span>
<span style="background-color: white; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px;"><br /></span>
<br />J. Pijuanhttp://www.blogger.com/profile/04045189250024504692noreply@blogger.com0tag:blogger.com,1999:blog-9173110561468519235.post-60020188446994547632012-12-17T21:30:00.000+01:002012-12-17T21:30:02.596+01:00"Las solicitudes que se indican a continuación están serializadas. Intenta dividir las dependencias para que se carguen en paralelo."Hoy toca optimizacion.<br />
<br />
Si estais optimizando vuestra web con Google Page Speed y os suelta esto... :<br />
<br />
<span style="background-color: white; color: #333333; font-family: 'Open Sans'; line-height: 21px;"><b>Las solicitudes que se indican a continuación están serializadas. Intenta dividir las dependencias para que se carguen en paralelo.</b></span><br />
<span style="background-color: white; color: #333333; font-family: 'Open Sans'; font-size: 13px; line-height: 21px;"><br /></span>
Significa que debéis intentar reducir las llamadas a archivos de forma repetida y agrupar lo máximo posible, reduciendo así la cantidad de Request al servidor.<br />
<br />
Este mensaje es habitual ya que es probable que en la misma pagina web haya varios CSS, JS's o imágenes estáticas que se están llamando varias veces durante la interpretación del código.<br />
<br />
SOLUCIÓN:<br />
<br />
Agrupar cuando sea posible esos archivos (y minimizarlos / comprimirlos).<br />
<br />
En el caso de archivos CSS y JS, se pueden minimizar, agrupar y reducir con esta herramienta: <a href="http://www.refresh-sf.com/yui/">http://www.refresh-sf.com/yui/</a><br />
<br />
Esta otra optimiza vuestro código Javascript (una vez lo hayáis agrupado todo puede ser útil . Lo recompila para optimizarlo, checkea la sintaxis, etc <a href="https://developers.google.com/closure/compiler/">https://developers.google.com/closure/compiler/</a><br />
<br />
Si lo veis interesante podríamos hacer un ciclo de Optimizacion de tiempos de carga de paginas web, tratando una por una las causas mas comunes y dando una solución para que vuestras paginas carguen lo mas rápido posible<br />
<br />
Hasta ahora!<br />
<br />J. Pijuanhttp://www.blogger.com/profile/04045189250024504692noreply@blogger.com0tag:blogger.com,1999:blog-9173110561468519235.post-79758302658343869462012-11-16T20:12:00.002+01:002013-04-16T11:32:50.658+02:00Error 403 en wordpress, permisos y seguridad<br />
<div style="text-align: justify;">
<b>Problema: </b>Al instalar un plugin en wordpress las imagenes no se ven por errores del tipo 403 Forbidden access.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Solución: </b>Es un error de permisos, debido a falta de permisos en la carpeta / archivo o bien hay algun modulo en nuestro servidor que bloquea el acceso.<br />
<br />
Lo más probable es que ocurran estos problemas al cambiar de servidor o instalar un plugin nuevo a la base de Wordpress.<br />
<br />
- La solucion más habitual es dar <b>permisos de lectura y escritura</b> a las carpetas de <b>wp-content</b> y a los archivos en cuestion. Hacedlo de forma recursiva para que se apliquen a todos los subdirectorios (con el Filezilla se puede hacer, si nuestro usuario de FTP tiene los permisos para hacerlo).<br />
<br />
- Otra forma de cambiar los <b>permisos </b>es utilizar el panel de control de<b> vuestro alojamiento</b>. Explorad dentro del panel de control a alguna opcion tipo "control permisos" "permisos directorios"...<br />
<br />
Hasta aquí lo fácil, pero este error puede tener una causa algo más complicada de resolver. Se trata que el servidor donde esta alojado nuestro blog tenga algun modulo de seguridad e impida accesos/llamadas a los archivos o impida que hagan hotlinking de nuestras imagenes (que se usen en otros blogs por ejemplo).<br />
<br />
<b>Más soluciones:</b><br />
<br />
- Según el modulo de seguridad instalado podremos "saltarlo" añadiendo algunas opciones en el archivo <b>.htaccess</b> de la raiz. Por ejemplo:<br />
<br />
<br />
- Otra forma de arreglar esos problemas es averiguar quien y como lo bloquea (revisad el <b>error_log del servidor</b>, a veces visible como carpeta desde vuestro FTP). Si es un modulo de apache y no lo podéis "saltar" con lo comentado anteriormente, añadid una excepción en sus archivos de configuración (normalmente en usr/local/apache/conf/MODULO/whitelist.conf)<br />
<br />
Me topé un caso en que habia una regla (la 666666 del modulo de seguridad de apache) que bloqueaba la redimension de imágenes. Añadiendo esta regla en el servidor se arreglo :)<br />
<br />
<span style="background-color: white; color: #333333; font-family: sans-serif; font-size: 13px; line-height: 22px; text-align: start;"><LocationMatch "</span><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; text-align: start;">/wp-content/themes/theagency/</span><wbr style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; text-align: start;"></wbr><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; text-align: start;">image.php</span><span style="background-color: white; color: #333333; font-family: sans-serif; font-size: 13px; line-height: 22px; text-align: start;">"></span><br />
<span style="background-color: white; color: #333333; font-family: sans-serif; font-size: 13px; line-height: 22px; text-align: start;">SecRuleRemoveById 666666</span><br />
<span style="background-color: white; color: #333333; font-family: sans-serif; font-size: 13px; line-height: 22px; text-align: start;"></LocationMatch></span><br />
<br />
Espero que os haya servido de ayuda, saludos!<br />
<br /></div>
J. Pijuanhttp://www.blogger.com/profile/04045189250024504692noreply@blogger.com0tag:blogger.com,1999:blog-9173110561468519235.post-4697155070176277742012-10-26T22:07:00.000+02:002016-09-22T22:19:39.299+02:00¿Cómo arreglar ñ, acentos y carácteres extraños en páginas web? Varias soluciones:<br />
<div style="text-align: justify;">
<b>Problema: </b>Se ven caracteres raros en lugar de los acentos o caracteres especiales como la Ñ o ¿</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Solución: </b>El origen del problema puede ser variado por lo que la solución puede variar. Las pongo en el orden personal de "popularidad".<br />
<br />
<ul>
<li>Codificación del archivo, tiene que coincidir con el formato que envía el servidor; ANSI, UTF-8 etc, si desconoces que juego utiliza el servidor es cuestión de prueba y error, y probar caso por caso.</li>
<li>Indicar mediante un tag "meta" la codificación usada en la página:</li>
</ul>
<div>
<br />
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); overflow: auto; padding: 5px; text-align: start; width: 600px;"><span style="font-family: "andale mono" , "lucida console" , "monaco" , "fixed" , monospace;"><span style="font-size: 12px; line-height: 14px;"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></span></span></pre>
</div>
<div>
<ul>
<li>Indicar en el archivo que genera la pagina la codificación de lo que envía (por ejemplo en PHP y UTF-8):</li>
</ul>
<div>
<div>
<br />
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); overflow: auto; padding: 5px; text-align: start; width: 600px;"><span style="font-family: "andale mono" , "lucida console" , "monaco" , "fixed" , monospace;"><span style="font-size: 12px; line-height: 14px;">header('Content-Type: text/html; charset=UTF-8');</span></span></pre>
</div>
<div>
<ul></ul>
</div>
</div>
</div>
<div>
<ul>
<li>Indicar en el archivo .htaccess la codificación por defecto</li>
</ul>
<div>
<br />
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); overflow: auto; padding: 5px; text-align: start; width: 600px;"><span style="font-family: "andale mono" , "lucida console" , "monaco" , "fixed" , monospace;"><span style="font-size: 12px; line-height: 14px;">AddDefaultCharset utf-8</span></span></pre>
</div>
</div>
<div>
<ul>
<li>Revisar el contenido por si viene generado desde una base de datos. Revisar si esta codificado en origen o si se debe antes descodificar para mostrarlo (función urldecode(str) por ejemplo).</li>
</ul>
<ul>
<li>Si no hay mas remedio y se precisa una solución rápida, utilizar códigos HTML para generar dichos caracteres:</li>
</ul>
</div>
<div>
<div>
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); overflow: auto; padding: 5px; text-align: start; width: 600px;"><span style="font-family: "andale mono" , "lucida console" , "monaco" , "fixed" , monospace;"><span style="font-size: 12px; line-height: 14px;">a = &aacute;
é = &eacute;
í = &iacute;
ó = &oacute;
ú = &uacute;
ñ = &ntilde;
€ = &euro;</span></span></pre>
</div>
<div>
<ul></ul>
</div>
</div>
<div>
<br />
Si os habéis encontrado con este problema y tenéis otra solución, compartidla en los comentarios!</div>
<div>
<br /></div>
</div>
J. Pijuanhttp://www.blogger.com/profile/04045189250024504692noreply@blogger.com4tag:blogger.com,1999:blog-9173110561468519235.post-91435126922454131782012-10-21T15:57:00.000+02:002012-10-22T08:23:36.431+02:00Vincular Blogger con Google analytics<div style="text-align: justify;">
<b>Problema: </b>Ver las estadísticas de visitas de mi blog de Blogger en Google Analytics</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Solución rápida: </b>Configuración / Otros / Google Analytics (al final de la página, introducir un codigo UA nuevo).</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Paso a paso:</b></div>
<div style="text-align: justify;">
No es necesario ningun widget nuevo ni nada, esta simplemente un poco escondido. Necesitaras crear un nuevo registro en tu cuenta de Analytics y copiar el codigo UA en la casilla de configuracion.</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3jXEskYDE8UNsXBS2gufXCn-wcP4x7rDZIGEziy84Kgj7TGhOkORY9Xhxm3AlcUnUiw4VgDxiZTowPZyknviC_gsOZC6kkjoyREzldaoed8jUztb4cgxx8oWhlevchdlc4WXG-XN1-BWf/s1600/configurar-analytics-con-blogger.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="332" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3jXEskYDE8UNsXBS2gufXCn-wcP4x7rDZIGEziy84Kgj7TGhOkORY9Xhxm3AlcUnUiw4VgDxiZTowPZyknviC_gsOZC6kkjoyREzldaoed8jUztb4cgxx8oWhlevchdlc4WXG-XN1-BWf/s1600/configurar-analytics-con-blogger.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div style="text-align: justify;">
El codigo "UA" lo puedes encontrar en la pestaña "Administrador / Información de seguimiento" de tu cuenta de Google Analytics:</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcyIiiy8zIE1OosUPS4ETyi3jHbokjBLUjfwyEU8P56qkvfjanS8m4udwdekKmaQl1AGFxH67kiYoLXd7M4pE8wQP5P9UhmrTNcJiDUITIo7TZ3jSwamnBIKPJf1d-LfghsGK0Gd7JZ6wI/s1600/codigo-UA-analytics.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="207" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcyIiiy8zIE1OosUPS4ETyi3jHbokjBLUjfwyEU8P56qkvfjanS8m4udwdekKmaQl1AGFxH67kiYoLXd7M4pE8wQP5P9UhmrTNcJiDUITIo7TZ3jSwamnBIKPJf1d-LfghsGK0Gd7JZ6wI/s1600/codigo-UA-analytics.jpg" width="320" /></a></div>
<br />
<b><br /></b>J. Pijuanhttp://www.blogger.com/profile/04045189250024504692noreply@blogger.com0tag:blogger.com,1999:blog-9173110561468519235.post-90284977179683184612012-10-20T13:48:00.000+02:002012-10-22T08:24:39.940+02:00Scroll de pagina con jQuery<div style="text-align: justify;">
<b><u>Problema:</u> </b>Utilizar links internos para mover el scroll en una pagina web, utilizando jQuery</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b><u>Solución rápida:</u></b></div>
<br />
<div style="text-align: justify;">
1. Añadir este script:</div>
<pre style="background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 600px;"><code> $(".scroll").click(function(event){
event.preventDefault();
var full_url = this.href;
var parts = full_url.split("#");
var trgt = parts[1];
var target_offset = $("#"+trgt).offset();
var target_top = target_offset.top;
$('html, body').animate({scrollTop:target_top}, 500);
});
</code></pre>
2. Link:<br />
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); overflow: auto; padding: 5px; width: 600px;"><code><span style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace;"><span style="font-size: 12px; line-height: 14px;"><a class='scroll' href='#</span></span></code>finalPagina<code><span style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace;"><span style="font-size: 12px; line-height: 14px;">'>pulsa aqui para ir al final de esta pagina</a>
</span></span></code></pre>
3. Etiqueta "destino":
<br />
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); overflow: auto; padding: 5px; width: 600px;"><code style="font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px;"><span id="</code>finalPagina<span style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace;"><span style="font-size: 12px; line-height: 14px;">"></span></span></span></pre>
<br />
<b><br /></b>
<b><u>Paso a paso:</u></b><br />
<div style="text-align: justify;">
Esta es una buena solución para dar un buen toque a tu pagina cuando hay mucho contenido y el usuario tiene que utilizar mucho el scroll lateral. Muy usado al final de paginas para "Go To Top" o tambien usado en pagina de "condiciones de uso" para ir directamente a algun apartado en concreto.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
El hecho de utilizar jQuery es porque nos permite, al implementarlo, añadir muchas otras funcionalidades y alterar su comportamiento. Ademas, es una plataforma de desarrollo muy extendida y estandarizada por lo que es una buena solucion independientemente del navegador utilizado.</div>
<div style="text-align: justify;">
<br /></div>
<b><u>La funcion en jQuery:</u></b><br />
<div style="text-align: justify;">
<b><u></u></b>
La primera parte sera añadir a nuestro archivo de javascript el evento "click" para los tags que tengan como clase "scroll". El nombre de la clase, se puede modificar por el que queramos.</div>
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 600px;"><code>$(".scroll").click(function(event){ ...</code></pre>
<br />
<div style="text-align: justify;">
Como el "hacer un click" es un evento, debemos quitar el comportamiento standard. En jQuery lo evitamos asi:</div>
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 600px;"><code>event.preventDefault();</code></pre>
<br />
<div style="text-align: justify;">
Las siguientes variables captan el atributo "href" del tag y parten (split) la cadena por donde haya el signo "#".</div>
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 600px;"><code>var full_url = this.href;
var parts = full_url.split("#");</code></pre>
<br />
Con la cadena partida, nos quedamos con la parte interesante [1]<br />
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 600px;"><code>var trgt = parts[1];
var target_offset = $("#"+trgt).offset();
var target_top = target_offset.top;</code></pre>
<br />
<div>
<div style="text-align: justify;">
Obtenemos a que altura desde el "top" esta nuestra etiqueta de destino mediante la función offset();</div>
</div>
<div>
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 600px;"><code>var target_offset = $("#"+trgt).offset();
var target_top = target_offset.top;</code></pre>
</div>
<div>
<br /></div>
<div>
<div style="text-align: justify;">
Finalmente, con la función animate jQuery movera la pantalla hasta la posicion de la "etiqueta destino" en 0,5 segundos (500 ms).</div>
</div>
<div>
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 600px;"><code>$('html, body').animate({scrollTop:target_top}, 500);</code></pre>
</div>
<div>
<br /></div>
<div>
<div style="text-align: justify;">
<b><span style="color: red;">PDPF (Post data para flamers):</span></b> Evidentemente no hace falta declarar tantas variables, ya que muchas se podrian agrupar o concatenar. Podria quedar asi (más optimo en recursos).</div>
</div>
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 600px;"><code><span style="font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace;">$(".scroll").click(function(event){
event.preventDefault();
$('html, body').animate({scrollTop:$("#"+this.href.split("#")[1]).offset().top},500);}</span></code></pre>
<br />
<br />
<b><u>Las "etiquetas":</u></b><br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6b8oDWFtFfXpKXYgJH6B2QWvB5SkuTTNriJyD2wrJCeLN2uv7nE9xVfb_DKk2BAnYiR25bmCxG7Q4PAitguSziyBkxTF55yhVB6cafnlZgLmu8Jkley4ewnSg2vo53Ix8xkUc_WZAs9Qo/s1600/gototop.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6b8oDWFtFfXpKXYgJH6B2QWvB5SkuTTNriJyD2wrJCeLN2uv7nE9xVfb_DKk2BAnYiR25bmCxG7Q4PAitguSziyBkxTF55yhVB6cafnlZgLmu8Jkley4ewnSg2vo53Ix8xkUc_WZAs9Qo/s1600/gototop.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><br /></td></tr>
</tbody></table>
<div style="text-align: justify;">
Por una parte pondremos una etiqueta <a> con los atributos "class" y "href". A esta etiqueta se puede dar el estilo que queramos y poner dentro, texto o imagen igual que un "anchor" normal y corriente:</div>
<br />
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); overflow: auto; padding: 5px; width: 600px;"><code><span style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace;"><span style="font-size: 12px; line-height: 14px;"><a class='scroll' href='#</span></span></code>finalPagina<code><span style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace;"><span style="font-size: 12px; line-height: 14px;">'>Go Top!</a></span></span></code></pre>
<div style="text-align: justify;">
La etiqueta destino es en este caso un simple <span>, pero podria ser cualquier otro tag, pero para que funcione el "id" debe coincidir con el "href" del link anterior.</div>
<br />
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); overflow: auto; padding: 5px; width: 600px;"><code style="font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px;"><span id="</code>finalPagina<span style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace;"><span style="font-size: 12px; line-height: 14px;">"></span></span></span></pre>
<br />
<div style="text-align: justify;">
<i><b>Espero que haya servido de ayuda, seguro que hay otras mas soluciones, si las quereis compartir dejadlas en los comentarios, gracias !</b></i></div>
J. Pijuanhttp://www.blogger.com/profile/04045189250024504692noreply@blogger.com0tag:blogger.com,1999:blog-9173110561468519235.post-77757561306804503602012-10-19T21:30:00.000+02:002012-10-20T00:18:48.170+02:00Post [0] ¿De que va este blog?<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbzjt7p10VWxfZxJoeKL1t40KRLbOOdQxVIRQnGSo3GcWxnT5OELAdvSn_3bJxI9p9qlSho7na2CD-bjPt12AA_M8Uq7v9Iqy1p_vD5c4OlEkXfk_XPS0W6XhgUuLLUSMsleYD0LYFoP2Y/s1600/large_377061.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbzjt7p10VWxfZxJoeKL1t40KRLbOOdQxVIRQnGSo3GcWxnT5OELAdvSn_3bJxI9p9qlSho7na2CD-bjPt12AA_M8Uq7v9Iqy1p_vD5c4OlEkXfk_XPS0W6XhgUuLLUSMsleYD0LYFoP2Y/s1600/large_377061.jpg" /></a><br />
<div style="text-align: justify;">
Me presento, me llamo Joan y soy internauta desde el 96. Desarrollador de soluciones web de profesión.<br />
<br /></div>
<div style="text-align: justify;">
La intención de este blog no es otra que dar soluciones a problemas comunes en el desarrollo de páginas web. A veces es difícil encontrar la solución adecuada, a veces es la mezcla de varias soluciones o cuando la encuentras, está explicada de una forma completamente complicada que es dificil de aplicar.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Así que, en mis ratos libres iré publicando las soluciones que me he encontrado, que (creo) a su tiempo son comunes en gente que desarrolla paginas web. Este blog es una herramienta para mi también, ya que a menudo tengo que recurrir a buscar paginas para arreglar los mismos problemas.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Al publicar la solución intentare poner la versión <b>corta </b>y <b>rápida</b>, esa que cuando la ves dices... "era esto! vaya tontería..." y otra más detallada, para ver paso por paso la solución e intentar comprender el funcionamiento.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Quizá también te encuentres con algún post que me parezca oportuno de publicar y que como desarrollador que (posiblemente) eres te pueda interesar. Ah! y si tenéis alguna duda y algo en lo que no dais la solución intentare ayudaros o utilizar este blog para que otros webdevelopers den su opinión.</div>
<div style="text-align: justify;">
<br /></div>
<br />
<br />
<br />J. Pijuanhttp://www.blogger.com/profile/04045189250024504692noreply@blogger.com0