Definiendo visión, misión y valores.

Remando juntos

La teoría nos dice que es necesaria su definición y supongo que en todas las carreras relacionadas con el management lo contemplan dentro de alguna de sus asignaturas. La visión, la misión y los valores parece que deban de escribirse en mayúsculas y aunque muchos de los conceptos teóricos del mundo empresarial han quedado obsoletos con el paso del tiempo y ya se consideran démodés, estos en concreto parece que se resisten a pasar al listado de ejercicios inútiles y cada vez ganan más vigencia. Su complejidad, al menos para mi, supongo que debido a alguna relación inherente a mi perfil técnico o simplemente a la falta de práctica en el ejercicio de proyectar futuros lejanos, reside en la definición de la visión. Estoy seguro de no estar solo. Definir la visión, bajo el concepto de aquello que es inalcanzable y como he leído por ahí "saber desde el principio, lo que se quiere", es complejo. O al menos lo es tener la seguridad de que el ejercicio ha llegado a su fin sin fisuras, … [Read more...]

Imprimir una imagen como un enlace con la función l de Drupal

Logo de Drupal

Pego aquí un pequeño snippet para imprimir una imagen dentro de nuestro theme, que apunte a la home de nuestra web. La función l de Drupal nos permite crear un enlace al <front> de nuestra portal. Por otro lado la función drupal_get_path nos devuelve la ruta a nuestro theme. <?php $path = drupal_get_path('theme', 'el_nombre_de_nuestro_theme'); $image_path = $path . '/logo.png'; print l('<img class="logo" src="' . $image_path . '" />', '<front>', array('html' => TRUE)); ?> Este código lo podemos utilizar en un block para volcar una imagen que tenemos localizada físicamente en el theme. … [Read more...]

Aproximación a CodeIgniter

Codeigniter logo

Uno de los desarrollos que me han encargado últimamente es la ampliación de un portal desarrollado en CodeIgniter. Como buen programador freelance una de las cosas que me define es que disfruto cada vez que debo de acercarme a una nueva tecnología. En este caso conocía el framework pero aún no había tenido la oportunidad de utilizarlo. Lo primero que diré es que es un framework con una cierta antigüedad, lo cual tiene ventajas y desventajas. Implementa MVC (Model-View-Controller) lo cual es una buena noticia. La documentación es buena y de hecho recomiendo la lectura del tutorial de introducción donde podemos ver, mediante ejemplos prácticos, como funciona el framework, implementando páginas estáticas y una gestión de noticias contra base de datos. Otra de las ventajas es que Internet está llena de información. Una búsqueda del nombre del framework en Stackoverflow nos devuelve 27.000 resultados, lo cual no está nada mal. También se puede interpretar como que CodeIgniter … [Read more...]

Resetear la contraseña de Drupal con Drush

Logo de Drush

La receta de hoy es breve pero muy útil. Seguro que más de una vez has necesitado resetear/reiniciar la contraseña de algún usuario Drupal. Puedes atacar a la base de datos directamente pero con Drush es mucho más sencillo: drush user-password USERNAME --password="PASSWORD" Además, seguro que haciendo pruebas, alguna vez has bloqueado tu cuenta por número máximo de intentos de acceso. Drush es tu amigo y vuelve a ayudarte, esta vez atacando a la base de datos. Este comando desbloquea al usuario: drush php-eval 'db_query("DELETE FROM `flood`");'         … [Read more...]

Crear módulos en Drupal con Module Builder

Dejo aquí un módulo de Drupal que me ha parecido interesante. Como programador Drupal, en ocasiones necesito programar módulos a medida para cubrir alguna funcionalidad que no puedo cubrir con el Core o con los módulos existentes. En esos casos, Module Builder nos permite crear el skeleton o scaffolding del módulo que deseamos desarrollar permitiendo además incluir el código base para los hooks que queremos manipular, entre otras ventajas. Puede ejecutarse como un módulo más dentro del propio Drupal y crear el módulo deseado con un formulario visual pero según comentan en la documentación, la versatilidad más potente se encuentra al ejecutarlo desde Drush. Una vez instalado, y con esta simple línea de código, crearemos el skeleton de nuestro módulo Drupal contestando a las preguntas que nos hará el builder. drush mb my_module menu cron form_alter --write En este caso creamos un módulo my_module con los hooks de menu, cron y form_alter.   Si son raras las … [Read more...]

Desindexar un subdominio en Google

Eliminar URLs

Se me ha dado el caso de necesitar desindexar un subdominio de desarrollo que era un clón del dominio de producció. El subdominio ha llegado a indexar más pàginas que las propias de producción, y teniendo en cuenta que replica contenidos, esto es un problema, si tenemos en cuenta que los buscadores, en especial Google, lo pueden considerar contenido duplicado, lo que puede implicar sanciones en el posicionamiento. Parece ser que una opción pasa por añadir redirecciones 301 al subdominio de forma que todas las URLs sean redirigidas a su equivalente en el dominio de producción, pero este proceso es lento. Hablamos de semanas o incluso meses en el caso de cantidades considerables de URLs. La alternativa es dar de alta el dominio en las Webmaster Tools, verificarlo y realizar una petición de eliminación de contenido desde la propia herramienta. En concreto lo podemos hacer desde el menú Google Index > Remove URLs En esta sección nos encontraremos con un botón para crear una … [Read more...]

Como ajustar el lifetime de la cola de correo de Qmail

Revisando mi servidor dedicado, después de un problema con el spam, he visto que el lifetime de los emails en la cola de salida del Qmail no está definido. El queuelifetime se define como el número de segundos que un mensaje se mantendrá en la cola de salida antes de ser descartado. Cuando un mensaje no puede recepcionarse por el destino, el servidor se lo guarda en la cola para volver a intentar el envío más tarde. Los reintentos de envío se repiten varias veces hasta que este consigue ser enviado o se produce un timeout definido por el queuelifetime. Parece ser que el valor por defecto es de 7 días, lo cual es bastante tiempo, y puede ser un problema en situaciones extraordinarias. Algunas consideraciones al respecto de cual puede ser un buen valor. Si los DNS de nuestro destinatario han sido modificados, técnicamente la propagación puede llegar a tardar 48 horas. En la práctica estos tiempos suelen ser bastante menores pero conviene tenerlo en cuenta. Otro caso. Si se … [Read more...]

Como cambiar o resetear la contraseña del administrador de Prestashop

Habitualmente las contraseñas en los proyectos web son guardadas en la base de datos de forma encriptada en un formato hash. Con esto evitamos guardar en claro dichas contraseñas. El algoritmo de encriptación además suele ser bastante básico, com aplicar un MD5 o similar. En algunos proyectos, no obstante, añaden cierta complejidad incorporando un valor adicional a la formula de encriptación. Es el caso de Prestashop que desde sus orígenes utiliza una cadena definida en el fichero config/settings.php. Dicha variable queda definida en ese fichero como _COOKIE_KEY_ Cuando deseamos resetear o modificar las contraseñas necesitamos regenerar los hash que se guardan en la bases de datos. En el caso de Prestashop deberemos de incorporar el valor antes comentado. En los proyectos que muevo muchas veces clonar el entorno de producción en un entorno de desarrollo con la finalidad de realizar ampliaciones. Y muchas veces necesitas poder logarte con varios usuarios con roles diferentes, … [Read more...]