09 diciembre 2008

Dual screen

Bueno, algo que pensé que era dificil lo tengo funcionando, el comando que me funcionó fue este:
sudo aticonfig --initial=dual-head --screen-layout=right --resolution=0,1680x1050 --mode2=1280x800 -v
Probé otras cosas y después tuve que retocar el archivo /etc/X11/xorg.conf a mano porque hubo algunas cosas que no las podía cambiar una vez configuradas (mal, por error mío) con el aticonfig.
Por suerte cada comando aticonfig genera un backup, así que se puede probar sin riesgo.
Otro detalle más: La resolución me quedó igual en ambos monitores (1280x800), así que tuve que cambiar el de más resolución a mano desde el menú de sistema de Ubuntu
Una página que me sirvió de envión: http://www.xaprb.com/blog/2007/08/10/how-to-set-up-dual-monitors-in-ubuntu-on-dell-inspiron-1501
Y algunos comentarios en: http://www.ubuntu1501.com/2008/03/ubuntu-hardy-heron-804.html

03 julio 2008

Host virtuales para symfony (falta pulir un poco)

Crear un Virtual Host para Symfony.
Para esto hay que tener habilitado mod_rewrite: en Ubuntu hay que crear un link simbólico de /etc/apache2/mods-available/rewrite.load a /etc/apache2/mods-enabled/rewrite.load
El código de mi vhost en /etc/apache2/sites-enabled y también debe estar en /etc/apache2/sites-available (ambos pueden ser links simbólicos a un archivo en otro lado)
NameVirtualHost symfony:80

<virtualhost symfony:80>
ServerAdmin admin@localhost
ServerName symfony
DocumentRoot /home/user/symfony/

Alias /web/sf /usr/share/php5/symfony/data/web/sf  
<Directory "/usr/share/php5/symfony/data/web">
AllowOverride All
Options FollowSymLinks +Indexes
Order allow,deny
Allow from all
</Directory>

<Directory /home/user/symfony/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/errorSymfony.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined
ServerSignature On
</virtualhost>
Lo importante son los AllowOverride All

02 julio 2008

Actualización de Symfony a 1.1

Bueno, con la actualización de symfony a 1.1 tuve algunos inconvenientes, pero nada que no se pueda solucionar leyendo el manual:
http://www.symfony.es/documentacion/actualizacion-de-symfony-10-a-symfony-11/

Vi que hay varios cambios, por lo que recomendaría a cualquiera que tenga un proyecto funcionando de hace tiempo, que tome precauciones antes de actualizar.
Lástima que ahora sólo funciona para php 5.1 o superiores, pero por suerte no voy a tener problema con mis proyectos, ya que hace rato que uso la versión 5 de php.

Yo apuesto por Symfony

Después de varios golpes con Java, demasiadas cosas para leer y aprender, muchas líneas de configuración, llegué a la decisión de que no vale la pena usar y escribir tanto código cuando la funcionalidad del sistema no lo requiere. Al final es como dice la frase: "En Java lo difícil es posible y lo fácil es difícil". Así que para lo fácil, opté por Symfony, donde lo fácil es fácil y lo relativamente complejo también es fácil.
Para empezar:
Mi sistema: Ubuntu 8.04
Requerimientos previos:
sudo apt-get install php5 apache2 libapache2-mod-php5 mysql-server php-pear
Instalar symfony:
pear channel-discover pear.symfony-project.com
pear install symfony/symfony
Autocompletar para bash: Crear el archivo /etc/bash_completion.d/symfony con este contenido:
_symfony()
{
local cur prev action
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
prev=${COMP_WORDS[COMP_CWORD-1]}
action=${COMP_WORDS[1]}

case "$prev" in
"init-module"|"propel-generate-crud"|"propel-init-crud"|"propel-init-admin"|"generate:module"|"propel:generate-crud"|"propel:init-admin")
COMPREPLY=( $( compgen -W "$( ls -1 apps 2>/dev/null | sed -e 's/ /\\ /g' | sed -e 's/\/$//g' )" -- $cur ) )

return 0
;;

"init-project"|"generate:project")
COMPREPLY=( $( compgen -W "$( pwd | perl -pe "s/^.*?([^\/]+)$/\$1/g" )" -- $cur ) )

return 0
;;

"init-app"|"generate:app")
COMPREPLY=( $( compgen -W "frontend backend" -- $cur ) )

return 0
;;

"sync")
if (($COMP_CWORD == 3)); then
COMPREPLY=( $( compgen -W 'go' -- $cur))
fi

return 0
;;

*symfony)
SYMFONY_VERSION=$( $prev -V | sed 's/^symfony version //g' | awk -F '.' '{print $1 "." $2;}' )

case "$SYMFONY_VERSION" in
0.*)
# Versions less than 1.0 are not supported.
COMPREPLY=()
;;

"1.0")
COMPREPLY=( $( compgen -W "$( $prev -T | awk '/^ /' | cut -d ' ' -f 3 )" -- $cur ) )
;;

*)
COMPREPLY=( $( compgen -W "$(
NAMESPACE=''
OLD_IFS=$IFS

IFS=$'\n'
for line in $( $prev -T ); do
if [ $line != 'Available tasks:' ]; then
if [ ${line:0:2} == ' ' ]; then
TASK=$(echo $line | awk -F ':' '{print $2;}' | cut -d ' ' -f 1)
if [ -z $NAMESPACE ]; then
echo $TASK
else
echo $NAMESPACE:$TASK
fi
else
NAMESPACE=$line
fi
fi
done

IFS=$OLD_IFS
)" -- $cur ) )

# Work-around bash_completion issue where bash interprets a colon as a separator.
# Work-around borrowed from the darcs work-around for the same issue.
local colonprefixes=${cur%"${cur##*:}"}
local i=${#COMPREPLY[*]}
while [ $((--i)) -ge 0 ]; do
COMPREPLY[$i]=${COMPREPLY[$i]#"$colonprefixes"}
done
;;
esac

return 0
;;

*)
case "$action" in
"propel-generate-crud"|"propel-init-crud"|"propel-init-admin"|"propel:generate-crud"|"propel:init-admin")
if (($COMP_CWORD == 3)); then
COMPREPLY=( $( compgen -W "$( find lib/model -maxdepth 1 -name '*.php' -exec basename '{}' '.php' ';' | grep -v 'Peer$' | tr [:upper:] [:lower:] )" -- $cur ) )
elif (($COMP_CWORD == 4)); then
COMPREPLY=( $( compgen -W "$( find lib/model -maxdepth 1 -name '*.php' -exec basename '{}' '.php' ';' | grep -v 'Peer$' )" -- $cur ) )
fi

return 0
;;
esac

return 0
;;
esac

return 0
}

complete -F _symfony symfony
Para desarrollar con Eclipse:
Symfoclipse