miércoles, 30 de noviembre de 2011

Parámetros opcionales en rutas para Symfony

Algunas veces, en algunas páginas necesitas que en la ruta vengan todos los parámetros, otras veces no todos e incluso ninguno es necesario.

Para ello en el sistema de routing de Symfony (Yo estoy usando la 1.4) se indica de la siguiente manera:



group_images:
  url:      /groups/images/:slug/:order
  param:    { module: group, action: indexImages, order: date-desc }




Donde slug es un parámetro obligatorio y order, si no se le pasa ningún valor, su valor por defecto será "date-desc".

Fuente: http://trac.symfony-project.org/ticket/2478

jueves, 17 de noviembre de 2011

Cómo obtener la extensión de un archivo fácilmente

Me suele surgir este "problema" cada cierto tiempo, y esta vez me he decidido a hacerlo de una manera un poco elegante y eficiente -es decir, sin switchs ni explodes, etc.-, y buscando un poco encontré la función pathinfo, que hace esto y algunas cosas más.

Para el caso que nos ocupa, la utilización sería:
$ext = pathinfo($filename, PATHINFO_EXTENSION);

Saludos!

martes, 30 de agosto de 2011

Cómo saber qué ips hay en una red


Ayer me preguntaba cómo sacar mediante consola, las ips que están activas en mi red wifi y encontré este sencillo pero potente método para escanear un rango de ips y comprobar cuales están activas:

nmap -sP 192.168.0.1-255

Esto nos devuelve un listado de las ips que están activas en ese momento en la red en la que nos encontramos:

Starting Nmap 4.62 ( http://nmap.org ) at 2011-08-30 08:42 CEST
Host 192.168.0.1 appears to be up.
Host 192.168.0.2 appears to be up.
Host 192.168.0.4 appears to be up.
Host 192.168.0.6 appears to be up.
Host 192.168.0.7 appears to be up.
Host 192.168.0.30 appears to be up.
Host 192.168.0.127 appears to be up.
Host 192.168.0.222 appears to be up.
Nmap done: 255 IP addresses (9 hosts up) scanned in 4.914 seconds



Obviamente dependemos de cómo sean las ips de nuestra red, puede que en lugar de ser 192.168.0.x sean 192.168.1.x, etc.



El comando nmap según wikipedia:

Nmap es un programa de código abierto que sirve para efectuar rastreo de puertos escrito originalmente por Gordon Lyon (más conocido por su alias Fyodor Vaskovich). Se usa para evaluar la seguridad de sistemas informáticos, así como para descubrir servicios o servidores en una red informática.


Enlaces:
http://es.wikipedia.org/wiki/Nmap
http://nmap.org/

jueves, 7 de abril de 2011

Cómo instalar una app en iphone desde el pc

Para instalar una app bajada de internet al pc, simplemente hace falta tener el iphone jailbreakeado, con installous y una red wifi.

Hay dos maneras de hacerlo, una para apps que ocupen poco y otra para apps de gran tamaño tipo Infinity Blade o Tom Tom. Hoy explicaré la de apps de gran tamaño.

Una vez tenemos el fichero .ipa en el pc, pasamos la app al iphone por cable. Yo utilizo el programa DiskAid, que lo que hace es tratar el iphone como si fuese un pendrive normal.

Ahora conectamos el iphone por ssh al pc o mac, y nos llevamos el .ipa que hemos subido con DiskAid a la carpeta de descargas del Installous. Para ello, desde la línea de comandos hacemos:

mv ubicacion/nombre_del_fichero.ipa /private/var/mobile/Documents/Installous/Downloads/

Por defecto, DiskAid deja los ficheros que pases al iphone en la ruta /private/var/mobile/Media/Recordings/nombre_del_fichero.ipa , aunque si usas otro método o cambias la ubicación, puede buscarla haciendo:
find -name "nombre" pudiendo utilizar * como comodín.

Y ya está, desconectamos del pc y abres el Installous y allí estará la aplicación que acabamos de pasar.

NOTA: Que no te mosquee que no se vea el ícono de la app en el listado, al instalarla, aparece bien ;)

jueves, 10 de febrero de 2011

Cómo subir un proyecto a un servidor de producción

Cuando estamos preparando una subida a un servidor y creamos los paquetes de ficheros, es importante la compresión del mismo para no morir en el intento.

Si estamos trabajando con subversion, obviamente no vamos a subir todos los .svn al servidor de producción, a parte de todas las carpetas que no necesitemos, como por ejemplo una carpeta con los html estáticos o las famosas carpetas .project de eclipse, etcétera.

Para ello, con la consola (si estamos en un entorno unix) o con el putty entramos a la carpeta padre del proyecto y escribimos:

tar -pczf nombre_del_paquete.tar.gz carpeta_del_proyecto/ --exclude=".svn" --exclude="Carpeta excluida" --exclude="fichero_excluido.xxx"

Esto nos va a crear un paquete llamado nombre_del_paquete.tar.gz, que será el que debemos subir al servidor via ftp (o el protocolo que sea), y que ocupará muchísimo menos que si subieramos todos los ficheros a pelo o en un zip o rar.

Ahora toca comprimir la base de datos. Yo suelo subir la base de datos comprimida en bzip, que es una compresión bastante óptima para ficheros de texto plano.

Primero hacemos el dump de la base de datos:

mysqldump -u nombre_usuario -p nombre_base_datos > nombre_del_paquete.sql

Esto nos creará un fichero de texto plano, y dependiendo de lo grande que sea nuestra base de datos necesitaremos comprimirla o no. En caso de necesitar comprimirla, como decía antes, recomiendo usar bzip:

bzip2 nombre_del_paquete.sql

Una vez que está todo subido al servidor, toca descomprimir.

-Primero el paquete de ficheros:
tar -xvf nombre_del_paquete.tar.gz

-Segundo la base de datos
bunzip2 nombre_del_paquete.sql.bz2

Cabe destacar que estos dos formatos tar.gz y bz2 se pueden descomprimir con WinRar, en caso que el servidor sea Windows.

lunes, 31 de enero de 2011

Comandos SVN

La primera entrada va dedicada a subversion (SVN) y a sus pocos pero útiles comandos y opciones.

Los comandos que más uso:

Comprobar el estado del repositorio
svn st equivalente a svn status

Comprueba si hay actualizaciones
svn up equivalente a svn update

Ejecuta un commit
svn ci -m "mensaje" equivalente a svn commit

Ejecuta un checkout del proyecto y descarga todos los archivos a nuestra carpeta_contenedora
svn co http://example.com/svn/project /carpeta_contenedora equivalente a svn checkout

Y por último uno que no suelo usar, pero que es importante tenerlo a mano, para crear un nuevo proyecto en subversion:

svnadmin create /var/svn/proyecto

Primera entrada

Esta es la primera entrada de mi blog, no prometo actualizarlo periódicamente pero lo que ponga será de calidad.