Aumentando el tiempo del timeout de FastCGI en IIS

El otro día comentaba que tuve que instalar GD (y un par de librerías más) en un servidor Windows con IIS para una instalación de PrestaShop. No fue la única modificación que tuve que hacer, a decir verdad. Al comenzar la instalación de PrestaShop se paraba en el 12% y daba un error creando las tablas. Ya había visto ese tipo de errores antes también en entornos Apache/Linux con alguna instalación de CMS: el proceso lleva demasiado tiempo y el servidor, por seguridad y optimizacion del rendimiento, cierra la conexión.

En el caso de PHP sobre IIS es la actividad fastCGI la que nos está fastidiando la instalación, así que debemos aumentar el tiempo de tiemout para poder acabar la instalación (luego ya lo volveremos a cambiar para asegurarnos el rendimiento del servidor).

Lo primero es lanzar el terminal de línea de comandos e ir a la carpeta c:\Windows\System32\inetsrv . Una vez allí si ejecutamos C:\Windows\System32\inetsrv>appcmd list config -section:system.webServer/fastCgi veremos los datos con la configuración de fastCGI.

Basta un solo comando para cambiar esa configuración, y vamos a poner una hora para ir sobrados de tiempo. Para este ejemplo vamos a suponer que nuestra instalación de php está en la carpeta C:\Program Files\PHP\v5.3\, como era en mi caso. En el vuestro cambiad esta ruta por la que corresponda.

C:\Windows\System32\inetsrv>appcmd set config -section:system.webServer/fastCgi "-[fullPath='C:\Program Files\PHP\v5.3\php-cgi.exe'].activityTimeout:3600"

Si todo va bien recibirás un mensaje tipo:

Applied configuration changes to section «system.webServer/fastCgi» for «MACHINE/WEBROOT/APPHOST» at configuration commit path «MACHINE/WEBROOT/APPHOST»

Tras eso basta con reiniciar el servicio y ya podrás seguir. Al acabar con la tarea que requiere tiempo extra lo recomendable sería volver a reducir el timeout de fastCGI.

Ubuntu Studio 14.04: Grabación y edición con software libre

No es la primera vez que Ubuntu Studio llega a estas páginas, ya hablamos en su día de la anterior versión LTS, y la pasada semana nos llegó la última revisión de esta distribución orientada a la grabación, edición de audio, vídeo, fotografía o maquetación.

Una de las cosas buenas del software libre es que permite la proliferación de sistemas operativos específicos para una actividad, como es el caso de este Ubuntu Studio. Y no sólo por venir con una serie de drivers y software específico para esos trabajos (cosa que podríamos instalar en cualquier otro equipo con un Ubuntu normal)  sino por peculiaridades propias como el kernel de baja latencia (si no sabes lo que es, desde Usemos Linux te lo explican muy bien) o su ligero pero elegante escritorio inspirado en XFCE.

Pero vamos con el software ¿Qué nos trae «de serie» esta nueva versión de Ubuntu Studio?

Pues en el terreno el servidor de audio de baja latencia Jack, la estación de trabajo con audio digital Ardour, el editor Audacity (con el que grabo mi podcast), el sintetizador Yoshimi, la caja de ritmos Hydrogen, el secuenciador MIDI/estación de trabajo Qtractor o el previo de guitarra Rakarrack.

Para temas de diseño trae el software de modelado 3D Blender, el editor de gráficos vectoriales Inkscape,  el sofware de manipulación de imágenes y fotografías GIMP y la herramienta de dibujo orientada a tabletas táctiles MyPaint. Y en temas de fotografía nos encontramos con el cuarto de revelado virtual Darktable, para trabajar con archivos en formato RAW, y el software Shotwell para gestionar y organizar tus colecciones.

Para el tema del vídeo nos encontramos el sencillo editor OpenShot, el programa DVDStyler para crear menús, subtítulos, audios múltiples y demás opciones típicas del formato DVD y el framework FFMPEG.

Y terminamos con el tema de edición y maquetación, donde vienen los populares Calibre, Scribus y, como no, la suite ofimática Libre Office.

Ubuntu Studio sigue presentándose como una gran opción para hacerte un estudio casero totalmente basado en software libre, sin olvidar que podemos complementarlo con mucho más software que pudiéramos necesitar y que tiene unos requisitos de hardware relativamente bajos para el trabajo que vamos a desempeñar.

 

Instalando la librería GD de php en IIS

Esta mañana preparaba una instalación de Prestashop en un servidor Windows. Ya había hecho varias en el pasado, pero siempre en entornos Apache-Linux, jamás en Windows con IIS. Supuse que no podría ser muy distinto.

La primera en la frente: PrestaShop me pide la librería de funciones de imágenes GD en el servidor, (y un par más, pero el procedimiento es el mismo) que no está instalada. ¿Qué toca?

Lo primero, abrir el php.ini, buscar la línea ;extension=php_gd2.dll y quitarle el ; para descomentarla. Si por lo que fuera esa línea no existe simplemente la metéis a mano. Luego o hacéis una copia del php.ini en la carpeta C:\Windows o creáis un enlace simbólico desde allí al archivo, cualquiera de las dos opciones vale.

Siguiente paso: dentro de la carpeta PHP buscáis la carpeta ext y allí mirad si está el archivo php_gd2.dll y, en caso afirmativo, lo copiáis al mismo directorio en el que tenéis el php.ini. En caso de que no esté allí (mirad bien, debería estar) debéis descargarla.

Tras estos sencillos pasos ya tenéis GD instalada en vuestro servidor PHP Windows con IIS.

Instalando Google Web Designer en Linux

Hará cosa de un año Google nos sorprendió con una herramienta de diseño web en fase beta: Google Web Designer. Un editor WYSIWYG muy potente, gratuito (al menos de momento), orientado hacia diseñadores, pensado para sacar todo el jugo de HTML5 y CSS3 (diseño responsivo, animaciones, aceleración 3D) y a su vez ser sencillo. Y, al igual que hicieron con Google Drive, se olvidaron de los usuarios de Linux.

Google-Web-Designer

Lo curioso es que se preguntó al director de proyecto alguna vez que qué pasaba con los Linuxeros y la respuesta fue más sorprendente: sí existía una versión para linux que además se usaba internamente en la empresa, pero tenía diferencias respecto a la que salió para Mac y Windows, por lo que no la sacaban. Al final, tras mucha presión por la comunidad, anunciaron que sí sacarían la versión para Linux.

Y ya la tenemos.

¿Cómo la instalamos? Sencillo: Vamos a la web del proyecto y desde allí descargamos el archivo .deb que mejor vaya con la distribución de Linux con la que trabajemos, lo ejecutamos con nuestro instalador de paquetes y… listo. Ya está, todo muy fácil… ¿o no?

Pues voy a ser jodón, pero no. Si fuera tan fácil no haría una entrada en el blog. Resulta que de momento hay un bug con la carga del idioma, si vuestro sistema no está en inglés Google Web Designer sólo muestra una ventana negra y no carga, no funciona. Por suerte por los foros oficiales ya existe una solución, que os obligará a tirar de consola (hasta que no salga una actualización/parche al menos)

#Lo primero es cargarnos la configuración por defecto tecleando:
sudo rm -r .local/share/google-web-designer

#y ya podemos lanzar web designer desde la consola, forzando que lo haga en inglés, con el siguiente comando
LANGUAGE=en_US google-webdesigner

Ahora sí, con esto ya tenéis funcionando Google Web Designer en vuestro equipo con Linux. Esperemos que dentro de poco la gente de Mountain View se apure a sacar o traducciones o al menos un parche que evite este molesto bug.

Solucionar fallo MsMpEng.exe en Windows

No estoy seguro de si tiene que ver con el abandono de soporte de Windows XP, pero esta mañana ya han llamado tres clientes que usan ese sistema operativo con el mismo fallo. Les aparece un error que dice:

MsMpEng.exe – Error de aplicación

La instrucción en “0x5a4d684d” hace referencia a la memoria “0×00000000″. La memoria no se puede “read”.

Tras esto el equipo se les queda bloqueado y no pueden continuar. Tranquilos, tiene solución.

Lo primero es reiniciar el equipo y pulsar F8 durante el arranque para entrar en el modo seguro (o modo a prueba de fallos). Una vez arrancado en este modo no saldrá el error, que es provocado por el Microsoft Security Essentials. En el menú de inicio pulsáis Ejecutar y lanzáis services.msc, para desde esa aplicación desactivar Microsoft Antimalware Service. Con esto desactivado reiniciáis el equipo.

En este reinicio no debería saliros ya ningún mensaje de error, así que os vais al Panel de Control, a la sección de Agregar/Quitar programas, buscáis Microsoft Security Essentials y lo desinstaláis. Esto os dejará sin antivirus, así que buscad alguno que todavía tenga soporte para Windows XP, mismamente el Avira.

SilentEye: más software para esteganografía en Ubuntu

Si el otro día hablaba sobre esteganografía en Ubuntu usando Outguess hoy vamos a ver otro programa para el mismo propósito: SilentEye.

Frente a Outguess os diré que es más coñazo de instalar (aunque no mucho) pero más fácil de usar. Para su instalación en Ubutu podéis descargaros desde aquí el paquete .deb, y previamente hay que tener instalado Qt4 C++, ya que depende del mismo para el entorno gráfico.

El uso del programa es extremadamente simple: con la aplicación abierta seleccionamos un archivo y pulsamos Encode. Eso nos permitirá elegir entre agregar un mensaje de texto escrito por nosotros o introducir un archivo que ocultar. Para recuperar el mensaje basta abrir el archivo desde el programa y pulsar Decode.

Lo que hace verdaderamente interesante SilentEye, por encima de su simpleza en el uso, es la posibilidad de añadirle diversos plugins para usar diversos formatos de imagen, vídeo y para añadir un cifrado fuerte. Por defecto ya deberían venir instalados en el .deb enlazado antes, pero si no podéis encontrarlos en la página del proyecto y, como no, si os veis con fuerza podéis intentar desarrollar vuestros propios plugins.

Outguess: software para esteganografía en Linux

La esteganografía se trata de una serie de técnicas que permiten ocultar una información a simple vista, similar en cierto modo a la criptografía pero con una idea distinta: en lugar de tornar indescifrable el mensaje la idea es esconderlo. En el caso del sotftware del que nos ocupamos nos permitirá ocultar un archivo dentro de otro. Por ejemplo meter un texto dentro de una foto, que sólo será recuperable por aquel que conozca la contraseña, el resto verán un simple y poco llamativa foto.

Lo primerito es instalar el programa, con un simple sudo apt-get install outguess en la consola. Una vez lanzado podemos trabajar con él desde la consola.

¿Cómo ocultamos un archivo? Bueno, vamos a empezar con dos archivos para un ejemplo: un archivo de texto que se llamará culpable.txt y una foto que se llamará coartada.jpg (festival del humor). En la línea de comandos debemos lanzar el programa pasándole como parámetros de entrada una contraseña (irá precedida de -k) y los datos en este orden: datos a ocultar, archivo «tapadera» y nombre que llevará el archivo generado (en este caso precedidos de un -d). Vamos con el ejemplo:

outguess -k mipassword1 -d culpable.txt coartada.jpg inocente.jpg

En este caso se generará una foto llamada inocente.jpg que aparentemente será la foto coartada.jpg pero que dentro contendrá el archivo culpable.txt para que sea extraído por aquel que sepa la contraseña.

Y ¿cómo se recupera el archivo?

Bueno, pues se necesita un comando similar, aunque añadiendo un -r al principio y como parámetros recibirá el archivo con el texto oculto y un nombre para el resultado recuperado:

outguess -r -k mipassword1 -d inocente.jpg recuperado.txt

Y de esa forma tenemos de nuevo el archivo .txt oculto, ahora bajo el nombre que le hemos dado tras recuperarlo.

No es una solución de seguridad definitiva, pero sí una ayuda a la hora de «ocultar» archivos.

Stored Procedure para guardar y devolver datos encriptados con AES (MySQL)

Esto llevaba un tiempo en el TODO list del blog, y a raíz de unos comentarios en el artículo sobre encriptación AES en MySQL y MariaDB he decidido hacerlo al fin. La cosa es que queremos guardar un dato encriptado en la base de datos pero de forma que sea transparente para el usuario, que cuando pide el dato lo recibe en texto plano.

El primer punto a la hora de guardar datos encriptados en AES es que debemos almacenarlo en un campo de tipo BLOB, ya que este algoritmo nos devolverá un resultado binario, no texto plano.

Por resumir vamos a imaginar una tabla que sólo tiene un Id autonumérico y un campo con un texto encriptado. Habrá dos procedimientos: uno para insertar los datos y otro para recuperarlos.

El procemiento que inserta sería así:

CREATE PROCEDURE sp_insertDatoEncriptado (IN `texto` varchar(128), IN `password` varchar(25))
DETERMINISTIC
BEGIN
    Insert Into 
      tabla (`TextoSecreto`)
    Values
      (AES_ENCRYPT(texto,password))
END

Y para recuperar los datos la cosa iría por este camino:

CREATE PROCEDURE sp_getDatoEncriptado (IN `password` varchar(25))
DETERMINISTIC
BEGIN
    Select
      Id,
      AES_DECRYPT(TextoSecreto, password) AS 'TextoSecreto'
    From
      tabla
END

Windows XP se queda sin soporte ¿Qué hacer?

Windows XP y Microsoft Office 2003 se quedan sin soporte a partir del 8 de abril, y aunque se trata de un sistema de hace más de una década (y que empezó a diseñarse en los 90) sigue estando instalado en muchos equipos, tanto de usuarios domésticos como de la administración. La buena noticia es que al fin los programadores web no tendremos que tener en cuenta las versiones anteriores a IE10 (y eso se puede traducir en que viviremos un par de años más), la mala es que familiares y amigos nos freirán a preguntas.

La cosa no es para menos, hoy desayunaba leyendo en twitter las advertencias de tres de los grandes expertos en seguridad españoles: Chema Alonso, Dabo y Alfon. Y si lo dicen estos tres yo me lo creo, porque de seguridad saben más que yo de largo. Otros, como el gobierno estadounidense, no parecen tan preocupados (pero ya tendrán sus amaños con la empresa del señor Gates para que les haga parches, seguramente).

El problema de la falta de soporte es principalmente que Microsoft no sacará más actualizaciones de seguridad, eso hará que en poco tiempo tu equipo con XP quede a merced de ciberdelincuentes que sólo necesitarán ejecutar un pequeño script para acceder a tus datos o controlarlo como un zombi.

¿Qué opciones tienes?

Bueno, si eres un fanático Windolero y tienes un equipo potente (y estabas usando XP porque te dio por instalarlo porque te gustaba más que los nuevos) pues siempre podrás pagar por una licencia de Windows 7 o Windows 8.

Si tienes un equipo antiguo que usaba XP porque con un Windows más moderno le cuesta trabajar con fluidez (o si no quieres pagar licencias) la solución está en una migración a Linux. La distribución Lubuntu con escritorio LXDE, por ejemplo, es una gran opción para equipos con pocos recursos. Muy ligera aunque menos conocida es Puppy Linux, y si tienes algo de memoria un Linux Mint con XFCE será una genial solución. Y si la potencia no es problema entonces simplemente escoge la distribución que más te guste.

En cuanto a jubilar el Office 2003las opciones son muchas (aparte de comprar una versión posterior):

  • Si tu conciencia te anima al uso de software libre el clásico OpenOffice y su fork LibreOffice son las dos opciones a tener en cuenta.
  • Si el tema de la libertad no te preocupa, y además quieres una interfaz similar a la de Microsoft Office, seguramente Kingsoft Office sea la opción para ti. Este veterano programa ha tenido un repunte enorme en los últimos años, imponiéndose en el mercado chino.
  • Y siempre tienes la herramientas ofimáticas de Google Drive para trabajar en la red, de momento gratuitas y muy útiles para trabajo colaborativo.

Como ves no tienes excusa para seguir con el viejo XP ni con el viejo Office, tal vez sea la hora de renovarse, tal vez sea la hora de perder el miedo a Linux. O la hora de comprar otro equipo y pagar una licencia. Pero desde luego no es recomendable seguir trabajando con un sistema operativo que ha pasado a ser abandoware. Y más en caso de la administración… pero ese es otro cuento.

Por cierto, si decides seguir con tu XP, al menos sigue las indicaciones que da la OSI al final de este artículo

10 Extensiones para Firefox útiles para el desarrollador web.

Si bien las extensiones pueden hacer que Mozilla Firefox se vuelva más pesado y consuma más recursos también una buena serie de las mismas puede facilitarnos mucho el trabajo a la hora de diseñar y probar sitios web. Vamos con una lista de 10 extensiones que te darán diversas y prácticas funcionalidades:

  • Firebug: Depura, monitoriza y edita CSS, Javascript y HTML en vivo cómodamente con esta colección de herramientas de la que ya hablamos en el pasado en este blog. Si bien creo que a día de hoy las herramientas de depuración nativas de Google Chrome han superado a Firebug (si usáis Chrome os irá mejor que la la versión de Firebug para ese navegador), en Firefox todavía me sigue pareciendo la mejor opción.
  • Web Developer Toolbar: Y seguimos con otra colección de herramientas que te facilitará muchos trabajos de pruebas y que se complementa perfectamente con Firebug.
  • SQL Inject Me: Se trata de una herramienta de testeo que nos puede ayudar a encontrar vulnerabilidades ante ataques de SQL Injection. Nos facilitará mejorar la seguridad de nuestro proyecto.
  • Colorzilla: También hablamos en el pasado de este complemento aquí. Se trata de un color-picker que además incluye un generador de degradados css, un navegador de paletas… en fin, una buena colección de utilidades relacionadas con temas de colores.
  • Dummy Lipsum: Un generador de Lorem Ipsum para rellenar aleatoriamente campos con texto.
  • Dummy Images: Similar al anterior pero menos típico (a fin de cuentas, generadores de Lorem Ipsum hay muchos), este complemento genera, a través de Firefox, imágenes de muestra del largo y ancho que indiquemos.
  • FireFTP: Este complemento incorpora a Firefox la funcionalidad de un cliente FTP, sencillo y cómodo ya que lo lanzas desde el propio navegador.
  • Holmsie: Un validador de HTML5 que te ayudará a encontrar problemas con tu marcado
  • PageSpeed Tools: Herramientas de análisis y optimización para comprobar el tiempo de carga de tu página y por qué podría estar cargando más lentamente.
  • MeasureIt: Simplemente una regla que nos permite tomar medidas de nuestra web.

En fin, espero que alguna de estas herramientas os pueda resultar útil y facilitar la vida.