Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como Tips

[wordpress] Configurar Red Multisitio

 Hola a todos! Después de mucho tiempo, por fin traigo un nuevo tip para desarrolladores principantes (como yo) de WordPress. En esta ocasión, les dejaré los pasos para poder configurar su instalación actual de WordPress como una red de multisitios. Para ello necesitarán tener acceso a los archivos del servidor web (vía FTP o similar), pues tendrán que editar y guardar algunos de ellos. Contexto WordPress nos ofrece una muy buena opción para administrar contenidos de sitios web (CMS, content managment system ). Usualmente, tenemos un sitio web asociado a esta instalación. Pero cuando necesitamos crear un nuevo sitio web, independiente del anterior, pero usando WordPress, lo que solemos hacer es crear una nueva ubicación en el servidor e instalar nuevamente WordPress en esta nueva carpeta.  Esto funciona bien, pero estamos olvidando que WordPress nos permite administrar más de un sitio con la misma instalación. Esta opción no está visible por defecto en la administración del CM...

[google.maps] Restringir polígono dentro de otro

Hola a todos!! En mi trabajo me toca desarrollar hartas cosas bonitas usando la API de Google Maps . La última cosa bonita que estoy haciendo es un Editor Gráfico web, que ocupa Polyline s y Rectangle s. En el siguiente registro les quiero dejar algunos tips sobre cómo lograr cierta característica que puede serles útil, aun si su desarrollo no apunta a lo mismo. Por lo mismo, este tip requiere de conocimientos previos de manejo de la API para comprenderlo. Vamos al asunto. El Editor que estoy realizando requiere de un área base, o como diríamos en términos gráficos, un lienzo donde trabajar. El objetivo es que el usuario sólo trabaje dentro de esta área, y no fuera de ella. Para ello, me valgo de algunas configuraciones previas, que incluyen un par de variables globales, y algunos manejadores de eventos de Google Maps. Una variable global me indica en qué "Modo" se encuentra el usuario: para este caso, los valores pueden ser "creando" o "en espera". Otra...

[tip] Leer Código QR sin cámara, desde tu navegador web

Hola a todos. Regularmente estamos encontrándonos con que, tras terminar de leer un anuncio o información, el remitente nos deja un código QR para que podamos expandir nuestro conocimiento respecto del tema recién leído. La lectura de estos códigos se ha vuelto muy popular y accesible a todos los usuarios gracias a los dispositivos móviles. Si el mismo no cuenta con una cámara que tenga incorporado el lector, siempre podemos descargar e instalar una liviana aplicación que cumpla con esta función. Todo bien hasta ahí. Pero, ¿qué pasa si estoy en el computador, sentada frente a la pantalla que me muestra el código, y no me interesa tener que tomar el teléfono móvil, activarlo, abrir la aplicación de lectura de código, enfocar a la pantalla del computador, leer el código, copiar el texto obtenido, buscar la forma de traspasarlo a mi computador (yo generalmente lo envío a un contacto de confianza de Whatsapp, para luego leerlo desde Web Whatsapp -_-), para hacer algo que debiera estar inco...

[php] No usar "die" en páginas web

 Este es sólo un registro para aconsejar a los programadores de PHP que trabajan en entorno web, a evitar en lo posible el uso de die  en sus algoritmos. Definición de die Según la documentación oficial , die  es un constructor del lenguaje equivalente a exit . A su vez, exit  se define como una construcción del lenguaje que "Imprime un mensaje y termina el script actual" ( PHP: exit - Manual ). En resumen, se trata de una instrucción que ordena al procesador interrumpir o detener la ejecución del programa de inmediato .  ¿Por qué no recomiendo usar die en desarrollo web? Muchos programadores usan esta instrucción en programas o scripts que son ejecutados en consola o como tareas programadas. En ese sentido, es totalmente pertinente su aplicación en scripts que no son parte de un sistema mayor, que trabajan independiente o que aunque sean parte de un sistema de tareas, su desempeño no afecta visualmente el resultado, pues son controlados por otros procesos. En ...

[wordpress] Error establishing a database connection

Hola a todos. Trabajando aún con Wordpress, a veces me suele ocurrir el error del título:  Error establishing a database connection. Este mensaje nos aparece al acceder a cualquier parte de nuestro sitio de Wordpress, pues intenta conectarse a la base de datos (BD) y no lo consigue. Lamentablemente, no nos entrega más información detallada para poder saber la causa del fallo. La causa típica es que las credenciales para acceder a la base de datos, que debimos haber ingresado en el archivo wp-config.php , están incorrectas. Tal vez reemplazamos sin querer el archivo por otro antiguo, o pasamos a llevar una letra en el archivo actual. Si revisamos este archivo y lo corregimos usando los datos correctos de acceso a la BD, el problema estaría resuelto. Otra causa, un poco más errática, es que aun teniendo las credenciales correctas, sea la base de datos el problema. En ese sentido, podríamos tener distintos escenarios, tales como: - El servidor de base de datos está caído. En ese caso,...

[php+oracle] Función explode() retorna array con valores cero

Hola a todos! Hoy les comparto un tip que acabo de aprender, tras horas de análisis de un extraño fallo que ocurría en mi programación al usar la función PHP explode() . El fallo que ocurría era que al ejecutarlo sobre un string , los valores retornados en el array resultante, eran todos igual a cero , en vez de ser los substrings esperados. Ejemplo: $cadena = "Hola, mundo" ; $array = explode ( "," , $cadena); Al revisar el valor de $array , me salía esto: Array(    [0] => 0,    [1] => 0 ) En vez de esto: Array(    [0] => "Hola",    [1] => " mundo" ) Al principio, pensé que el separador, la coma, tal vez no era tal, y que era un caracter "similar" a la coma, y entonces debía usar ese caracter "similar" como separador. Por ello, reemplacé el uso de explode() por preg_split() , en la cual puedo usar expresiones regulares como separador. Pero no resultó, pues el caracter, la coma "similar", era exactament...

[css] La útil función calc()

Hola a todos, después de mucho tiempo. Este tip que compartiré hoy no es nada extraño para los expertos en CSS, pero para los que empiezan, siento que les será de mucha ayuda (al menos yo no lo conocí sino hasta casi una década después de programar en web...). Se trata de la función calc() para uso en CSS. Esta función permite realizar operaciones aritméticas simples para obtener valores numéricos de forma dinámica en nuestra definición de estilos. Esto es de muchísima utilidad cuando necesitas precisión al pixel de tu layout; o bien cuando necesitas obtener una posición que es relativa al contenedor, y no es siempre fija. Te dejo algunos ejemplos en los que yo he utilizado esta maravillosa función, salvándome la vida: EJEMPLO 1: .miEstilo {   width : calc(100% - 30px) ;   margin : 5px 15px ; } En este ejemplo, lo que hacemos es que el elemento html al que se asigne la clase "miEstilo", tendrá un ancho del 100% dentro de su Contenedor, pero además, a este 100% se le rest...

[php] htmlentities no funciona como se debe

Hola a todos! Ha pasado mucho de la última vez que escribí aquí, jijiji! Esta vez les traigo un nuevo tip. Se trata del uso de la función PHP htmlentities . Como recordarán, esta función retorna una cadena de texto, con los caracteres especiales convertidos a su forma HTML, vale decir, convierte letras tildadas y otros signos a sus respectivos códigos HTML. Esto permite que el navegador interprete nuestra página HTML como corresponde, y no se quede pillada al encontrarse con extraños símbolos que no entiende. Ahora bien, desde cierta versión de PHP, la forma de usar esta función cambió un poco. Ya no bastaba con llamarla, sino que hay que indicarle ciertos parámetros para que funcione bien. Antes: $cadena = "Hola, ¡cómo estás?" ; $cadena_html = htmlentities ( $cadena ); print $cadena_html ; // A nivel de código, obteníamos: Hola, ¡cómo estás? Ahora: $cadena = "Hola, ¡cómo estás?" ; $cadena_html = htmlentities ( $ca...

[Web] Error: No aparecen los tipos de documento al intentar Crear Nuevo en Google Drive desde Firefox

Holas!! Hace mil años que no me aparecía por acá, jejeje... Pero bueno, acá estoy :P Esta vez, es para compartir un nuevo Tip. En esta ocasión, comentarles la rápida solución para aquellos que disfrutan de Google Drive , que usan Firefox , pero que les ha surgido un curioso fallo al intentar Crear un nuevo documento en sus carpetas. El error que a mí me apareció fue que al intentar crear un nuevo documento , no me aparecían los tipos de documento para elegir. En su lugar, me decía "Conectar aplicaciones...", lo cual hice siguiendo los pasos en la misma web descritos. Pero en vista que ni reiniciando el navegador el error se corregía (vale decir, me seguía saliendo vacía la lista de tipos de documentos, aun cuando al abrir el panel de Conectar Aplicaciones, las apps que yo había "conectado", efectivamente aparecían "conectadas", y encima un error en fondo rojo sobre el Drive me decía unas veces "Surgieron algunos problemas al cargar tus aplicacion...

[php] NuSOAP HTTP Error: socket read of headers timed out

Holas a todos. Este es para comentar un problema que he tenido al trabajar un servicio web montado en PHP con la clase NuSOAP. El problema surgió cuando intenté llamar al servicio web desde el otro servidor, pero se caía a los exactos 30 segundos de ejecución, mostrando el mensaje que titula este registro: HTTP Error: socket read of headers timed out Sabía que el problema era el timeout, pero ¿el timeout de qué? En los servidores y páginas web hay timeouts por todos lados: el de la Conexión a internet o la red, el del Servidor (hardware), el del Servidor Web en sí (Apache, mi caso), el de PHP (mi caso)... Pero nunca se me habría ocurrido que las Aplicaciones o frameworks también pudieran tener :o Por eso, tras buscar por la red la solución a mi problema, la respuesta vino precisamente de alguien que señaló sencillamente que había que modificar el timeout de la clase NuSOAP. Y dicho y hecho, eso solucionó el problema. Si están usando en su servidor y/o cliente la clase NuSOAP, y d...

[tip] Crea tu propio tema en Windows 7

Habiendo instalado el Windows 7 en el PC de mi trabajo, me enteré de aquella bella característica de los temas con fondo de escritorio cambiante. Aunque en la ventana de personalización de pantalla no aparece una opción de "Crear Tema", pues me di a la tarea de averiguar si existía la forma de hacerlo. Tras bastante tiempo sin saber cómo se hacía, hoy encontré la respuesta en Theme File Format y en la Community , ambos sitios de Microsoft. La respuesta no podía ser más sencilla, y por eso se las dejo comentada acá. Cuando seleccionamos un Tema en nuestra ventana de personalización, lo que hace Windows es buscar el archivo correspondiente a dicho tema. Ese archivo lleva por extensión "theme". De ese modo, tenemos el archivo "aero.theme" para el tema Aero; el archivo "nature.theme" para el tema Naturaleza; y así sucesivamente. Lo increíble y mejor de todo es que estos archivos "theme" no son sino simples archivos de texto, que guarda...

[php] Averiguar si una cadena contiene código HTML

Holas a todos. Estaba buscando una manera rápida de averiguar si un texto era código HTML, y tras una breve indagación googleana, les presento la solución que encontré. Se usa la función nativa de PHP strip_tags() , que lo que hace es limpiar una cadena de toda etiqueta HTML que encuentre, devolviéndonos dicha cadena "limpia". Ya que al usar esta función sobre una cadena que efectivamente tiene etiquetas dentro, nos retornará una cadena totalmente distinta, lo que hacemos es averiguar el resultado de comparar la cadena original con la procesada. /** ---------------------------------------- @author Carolina Casanova García @date 11/06/2013 @return boolean */ function is_html($fval) {   // si las cadenas son distintas, entonces se trata efectivamente   // de una cadena con etiquetas HTML dentro   return (strip_tags($fval) != $fval); } // acá un ejemplo de uso: $cadena = '<u><b>¡Hola!</b></u>' ; print "<p>La cade...

[tip] Instalar Flash Player en Firefox

Holas a todos. Hoy les dejaré los pasos que seguí para lograr actualizar el complemento o plugin del Flash Player en Firefox (v.15). Desde hacía rato que Firefox me reclamaba que debía actualizar el plugin de Shockwave Flash (https://www.mozilla.org/es-ES/plugincheck/), y de hecho no podía ver algunas páginas por lo mismo. El problema era que, aun descargando el instalador del Flash Player desde el sitio oficial (http://get.adobe.com/es/flashplayer/), no podía realizar la actualización. El problema específico era que, al ejecutar el EXE, la ventana del instalador cargaba una barra de progreso hasta el 50%, donde se detenía con el mensaje "No se ha podido inicializar", y lo peor, el archivo EXE desaparecía en el limbo. Cabe mencionar que este instalador no es realmente tal, sino un programa de conexión al centro de descargas de Adobe, desde donde realiza la instalación en línea (o eso asumo yo). Buscando información sobre el problema, en algunas partes leía que era drama...