Mostrando entradas con la etiqueta linux. Mostrar todas las entradas
Mostrando entradas con la etiqueta linux. Mostrar todas las entradas

jueves, 1 de noviembre de 2012

Optimizando multiples imagenes PNG recursivamente

Utilizando la herramienta pngcrush disponible con apt-get y creando un pequeño shell script podemos optimizar todas las imagenes .png que queramos dentro de un árbol de directorios recursivamente.

El script requiere como parámetro el path a partir del cual se buscarán los ficheros y por seguridad no permite especificar el path raíz de nuestro linux.
Ojo que sobreescribe los ficheros, así que tener cuidado y haceros copia de seguridad por si acaso :)

Aquí os dejo el script para optimizar recursivamente todas vuestras imagenes png.



#!/bin/sh

if [ $# -lt 1 ]
then
        echo "Missing path parameter to search into"
        exit 2
fi

if [ "$1" = "/" ]
then
        echo "root folder is not allowed"
        exit 2
fi

read -p "Crush all PNG files under $1 folder? yes / no ?" answer
if [ "$answer" != "yes" ]
then
        echo "Cancelled"
        exit 2
fi

echo "Looping inside $1"
for png in `find $1 -name "*.png"`
do
        echo "crushing $png"
        pngcrush "$png" temp.png
        mv -f temp.png $png
done;


Nota:  la linea pngcrush podeis personalizarla a vuestro gusto, por ejemplo añadiendo -brute para que la compresion sea superior (aunque mucho más lento).

He conseguido aproximadamente un 10% de reducción sin usar brute básicamente porque no me apetece esperar varias horas (eran cientos de ficheros)

Espero que os sirva :)


domingo, 10 de mayo de 2009

Juegos en linux

Aquí os dejo un par de juegos bastante buenos para Linux

Juego de artillería (estilo worms) http://www.scorched3d.co.uk/



Juego tipo command and conquer http://wz2100.net/

lunes, 17 de noviembre de 2008

Error fopen - permiso denegado

Abres tu navegador en linux y...

es > function:fopen failed to open stream - permission denied
en > function:fopen failed to open stream - permiso denegado

Éste mensaje de error es muy habitual cuando estamos reutilizando código, o probando nuestro servidor web por primera vez con algún tipo de CMS o librería de terceros.

Hoy mismo me ha vuelto a suceder, instalando una librería que realizaba un append a un fichero de texto cualquiera sobre mi servidor "xampp" sobre Ubuntu.

¿Por qué?
Éste error puede suceder, o bien por tema de permisos o bien por tema de rutas. Puede daros bastantes dolores de cabeza si os ofuscáis intentando aplicar una solución y no funciona... así que probar las dos al menor problema.

Solución permisos: chmod sobre los ficheros afectados
Solución rutas: la mejor solución es asegurarse de que estamos indicando correctamente la ruta al fichero, puesto que dependiendo de si es una ruta absoluta o relativa, fopen tendrá acceso o no a él. La mejor opción es utilizar la variable predefinida de PHP $_SERVER["DOCUMENT_ROOT"] acompañado de la ruta relativa dentro del servidor web hacia nuestro fichero en cuestión.

Es decir, si quiero escribir sobre el fichero situado en htdocs/dir/test.txt le enviaré a fopen el parámetro $_SERVER["DOCUMENT_ROOT"]."/dir/test.txt"
Si ésto falla, quizás sea porque DOCUMENT_ROOT no está bien definido.

Saludos

martes, 22 de abril de 2008

Bug en Ubuntu 8.04

He probado ubuntu 8.04 pre-release y he instalado los drivers restringidos de nvidia...
Lamentablemente, a resoluciones altas la tasa de refresco del monitor me queda limitada a 50hz y noto un gran cansancio en la vista... y con una resolucion de 1024x768 aparece distorsion en la imagen...
Así que he decidido quitar dichos drivers y retornar a los genéricos... mi sorpresa a sido que synaptic ha fallado al intentar borrarlos y después de dicha incidencia ha dejado de funcionar correctamente (el gestor de paquetes)... dejándome aislado de nuevas actualizaciones y descargas.

He estado trasteado y aquí teneis la solución temporal que he encontrado... un manual fix ;)

Aquí mi post