Comienzo el PFC

Nokia 810 Supongo que ya era hora de ir haciendo algo ‘de provecho’, después de tanto tiempo programando cosas por afición, por fin me llega la hora de programar para un fin concreto. De acuerdo, en las prácticas de clase también se programa… pero menos de lo que nos parece durante las clases.

Empiezo mi PFC, que si Android y Vodafone no lo remedian, tratará de hacer una aplicación para el Nokia 810. ¿No es gran cosa? Pues sí, porque el Nokia 810 funciona sobre Debian y eso significa GNU/Linux y disfrutar de las frikezas de la vida.

Poco a poco, en esta categoría iré escribiendo todo lo que sea menester, tanto para que mi tutora siga el ritmo de mis avances (con el rss del PFC) como para dar un poco más de información, dentro de lo poco que pueda aportar, sobre como programar en este dispositivo.

De momento estoy a la espera de que se descarguen los 300 y pico megas del SDK, que pasarán a ser 900 y pico tras la instalación. Es curioso, lo primero que he leído es que el kernel de Ubuntu es ‘incompatible’ con el SDK, esto promete ser divertido, pero cada cosa a su tiempo.

Espero que esta sea la primera de muchas, divertidas y nocturnas entradas.

Dell Mini 9, algunas teclas no funcionan

Dell Mini 9

Estas navidades hemos comprado dos Dell Mini 9 en casa. ¿Las razones? Mis padres no tienen ordenador y mi hermana está todo el día en movimiento. ¿Las verdaderas razones? Vienen con Ubuntu y quiero enseñar a usar Linux a mi familia.

En principio, los ves y dices: que monada, pero a mi esa sensación me duró unos minutos. Los dos portátiles vinieron estropeados. Los dos con un fallo por el que no se podía cargar la batería y uno de ellos con un problema en el teclado que hacía que siempre estuviera pulsada la tecla de la flecha izquierda.

En uno de los minis pude solucionar el problema con la batería a base de actualizar BIOS y aplicar configuraciones extrañas, en el otro no pude, porque ni recordaba todo lo que había hecho con el anterior, cosas que sólo me ocurren a mi.

Resultado, llamada al servicio técnico de DELL, nueva batería para cada uno y el de la tecla mal… mal se quedó.

Otra llamada al servicio técnico y reemplazaron las tripas del que quedaba por arreglar. Al principio, todo parecía correcto, pero al poco de usar el teclado nos dimos cuenta de que no podíamos escribir nuestra querida @. Alt Gr y otras teclas no funcionaban. Después de mucho pensar, en uno de los foros de dell encontré la solución.

  • Desenchufar y apagar el portátil
  • Mantener pulsadas las teclas Fn y K
  • Enchufar el portátil
  • Encender
  • Soltar las teclas

Con eso, por fin logramos poder usar nuestro dell mini 9. Ahora sólo me falta descubrir porque usando Ubuntu 8.10 para i386 no funciona el Bluetooth y por qué usando Ubuntu 8.04 lpia sí que funciona. Maravillas de este cacharrín.

Configurar VSFTP en Ubuntu

Como comentaba en la entrada Servidor de FTP en Ubuntu, me he decantado por VSFTP entre varios servidores de FTP, no tanto porque lo necesite para acceder a mi ordenador de forma remota, para eso uso SSH, sino para poder hacer uso de las actualizaciones automáticas que proporciona WordPress.

Por desgracia, la configuración que viene por defecto en Ubuntu para VSFTP no es la más adecuada para usarlo con WordPress y las actualizaciones automáticas, así que voy a comentar los cambios que he hecho:

Editar el fichero /etc/vsftpd.conf

# Permitir el acceso a los usuarios de esa máquina.
local_enable=YES

# Permitir las escrituras
write_enable=YES

# Establece una máscara para los permisos menos restrictiva que los que vienen por defecto. Necesario para las actualizaciones automáticas.
local_umask=022

Después de un par de días usando VSFTP me di cuenta de que había algún problema, ya que después de hacer algunas actualizaciones de plugins la web lanzaba avisos de que no tenía permisos para cargar ciertos archivos, así que si estás en ese caso, no te olvides de descomentar la última línea.

Actualizando el servidor a Ubuntu 8.10

Aunque aún quedan 4 días para la salida oficial de Ubuntu 8.10, llamada Intrepid Ibex, aprobeché que el viernes salió la versión candidata de Ubuntu 8.10, para actualizar el servidor.

No soy partidario de meter software inestable en un servidor (o en los ordenadores de la uc3m), pero se daban varios factores:

  • Que soy un yonki de los SOs y me encanta ver las novedades
  • Que me había comprado un disco duro SATA para sustituir al IDE y prefería hacer una instalación limpia antes de copiar el /.
  • Que Ubuntu 8.10 viene con Pidgin 2.5.2, Gnome Do 6.1 y AWN con applets. Programas sin los que ya no puedo vivir.

Ahora mismo no tengo instalado ni Subversion ni Eclipse, pero en breve lo instalaré y comprobaré si hace falta hacer un cambio al manual sobre Ubuntu, Eclipse 3.4 y Subversion.

Lo que si he aprovechado para gestionar las copias de seguridad del portátil y del servidor en el antiguo disco IDE. Gracias a la versión de Intrepid de sbackup ahora es posible que sólo si se puede acceder al directorio de destino se realice la copia. Ideal para que mi portátil mande las copias por ssh a mi disco IDE sólo cuando esté conectado a la misma red local. Dejo un manual de sbackup en ingles enlazado, aunque espero dar más detalles próximamente.

Sobre Ubuntu 8.10 muchas cosas que decir, casi todas buenas.

  • Se han arreglado pequeños fallos como que cada vez que tocabas una partición durante la instalación, te buscaba de nuevo todos los discos, lo que hacía que fuera un poco más lento.
  • Pensaba que las pestañas en Nautilus eran una tontería, pero ya no puedo vivir sin ellas (llevo todo el fin de semana arrastrando cosas de aquí para allá).
  • Gparted gestiona las etiquetas de los volúmenes, así que ahora es muy fácil que te monte tus dispositivos usb en /media/lo que sea y saber dónde va a estar.
  • Por fin f-spot gestiona los duplicados (aunque aún no he probado, son miles de fotos a ordenar). Cómo hacer una copia de seguridad de F-spot.

Aún tengo que hacer algunas cosas, como sincronizar las notas de Tomboy, pero en general estoy muy contento con el cambio, aunque no vaya a tener OpenOffice 3.0 ni Eclipse 3.4, pero intentaré sobrevivir o instalarlos sin apt.

Programando php en Eclipse

Curva de aprendizajeHace un par de entradas escribía sobre como tener instalado Eclipse 3.4 y Subversion en Ubuntu. Los necesitaba para programar una web que estoy haciendo en php, aunque le pese a Jesús.

Me he decido por php, porque ya he trabajado con el lenguaje antes y me parece muy fácil de usar y con una curva de aprendizaje muy pronunciada.

Cómo entre otros propósitos tengo el de aprender a utilizar eclipse con mucha soltura, no me queda más remedio que instalar algún añadido (aka plugin) para poder programar en php.

Es tan fácil como ir la web sobre instalación de phpeclipse y seguir las instrucciones.

¡FALSO! A mi no me funcionó y he tenido que añadir la línea:

http://update.phpeclipse.net/update/nightly

en vez de la que recomienda en la web:

http://update.phpeclipse.net/update/stable/1.2.x

Aparte de programar con phpeclipse, también dedico mi vida a curarme de un resfriado que me tiene en casa encerrado.

Gestor de cuentas

¿Cuántas veces has salido de fiesta y has pagado cosas que no te han devuelto?

Pues yo me encargaré de que no sea así. Estoy programando una web en la que cada vez que salgas de fiesta, metas los datos de lo que has pagado, marques quienes estaban y cuando todos estén satisfechos, haga los cálculos.

¿Maravilloso, no?

Veremos cuánto tardo y que funcionalidad soy capaz de ponerle. En cuanto tenga una versión mínimamente funcional iré liberando código.

php+mysql, claro.

Ubuntu, Eclipse 3.4 y Subversion

    Edicciones Sábado 1-11-2008

  • También, como es lógico, necesitarás tener java instalado. Yo suelo utilizar sun-java6-jdk
  • Comento en caso necesario las diferencias entre Ubuntu 8.10 y Ubuntu 8.04, aunque son procesos extremadamente parecidos.

Éste último año he dejado de lado Eclipse para hacer mis prácticas con Netbeans. Mucho ha pasado ya desde mi primer encuentro con el IDE de Sun en el que todo me parecía que estaba mal situado y que no funcionaba correctamente. Ahora mismo me encuentro muy cómodo trabajando con él.

Por suerte o por desgracia, a los chicos de Google les gusta Eclipse y para programar aplicaciones para Android hace falta utilizar la versión 3.3 o la versión 3.4. ¿Adivinas el problema? Ubuntu 8.04 (y las versión 8.10 también) trae/traerá la antiquísima versión 3.2 de eclipse.

Nos ponemos manos a la obra y nos vamos a la página de descargas de eclipse. Una vez allí seleccionamos la que más nos interese, yo he optado por la versión de de 162 MB que lo trae todo. Los que no estén habituados a salirse del apt-get install, entre los que me encuentro, se preguntarán que hacemos con ese archivo tan feo.

Los pasos que comento no van a ser un copia/pega porque creo que si no sabes lo que estoy diciendo, no deberías estar tocando estas cosas.

Descomprimimos el archivo y lo movemos al directorio /opt (necesitaremos permisos de root). A los que les guste cacharrear reconocerán este directorio porque es dónde se instala por omisión el Google Earth.

Hacemos un enlace de /opt/eclipse/eclipse a /usr/local/bin/ con lo que ya podremos ejecutarlo con permisos de usuario común desde la consola con un eclipse o bien creando una entrada para el menú o dónde nos apetezca poner un acceso directo.

Otra cosa que he aprendido este año es que o usas un sistema de control de versiones o estás muerto, al menos si tu proyecto es grande. Así que a instalar un servidor de subversion en mi máquina para no depender de la ayuda extranjera (aka del hosting de otros amigos).

Lo primero será instalar subversion (los paquetes subversion y subversion-tools), el módulo para apache libapache2-svn (si no tienes apache también deberías instalarlo).

Nos creamos un grupo llamado subversion (Sistema -> Administración -> Usuarios y Grupos) y al usuario que estés instalado en darle acceso al subversion, lo metes en el grupo.

Desde consola: htpasswd2 -c /etc/apache2/dav_svn.passwd user1 dónde user1 lo cambias por el usuario que quieras que tenga acceso, con este comando le das una clave de acceso al subversion.
En Ubuntu 8.10 habrá que usar htpasswd2 -c /etc/apache2/dav_svn.passwd user1.

Si necesitas darle acceso a más usuarios prueba con este comando htpasswd2 /etc/apache2/dav_svn.passwd user2, pero sustituyendo user2.

Lista de comandos para crear el directorio de trabajo de subversion.

sudo mkdir /home/svn
sudo svnadmin create /home/svn
sudo chown -R www-data:subversion /home/svn/
sudo chmod -R 770 /home/svn/

Aquí la parte más aburrida:

sudo gedit /etc/apache2/mods-available/dav_svn.conf
y escribe:

##
# SVN
#
<Location /svn>

DAV svn
SVNPath /home/svn

AuthType Basic
AuthName "Repositorio Subversion del proyecto"
AuthUserFile /etc/apache2/dav_svn.passwd

Require valid-user

</Location>

¡Ya casi lo tenemos! Nos falta instalar el plugin de subversion para eclipse. Es tan fácil como seguir los pasos de la web de subclipse con la salvedad de que debemos instalar también SVNKit adapter debido a que la versión del cliente de subversion de Ubuntu 8.04 no le gusta al subclipse, cosas de la vida.

Ya deberías tener tu sistema con Eclipse y Subversión corriendo, no ha sido tan duro, ¿o sí?

Extra:

Servidor de FTP en Ubuntu

Si eres de los que tienes tu propio servidor en casa para alojar un blog tipo wordpress quizá te hayas encontrado con la función automática de actualizar plugins y el propio wordpress.

Para poder utilizarla necesitas tener un servidor de FTP en tú máquina. Yo me decanto por instalar VSFTP, más que nada porque no necesita ningún trabajo para configurarlo. Para instalarlo sudo apt-get install vsftpd y listo.

El único problemilla que nos encontraremos será que para acceder a los archivos del directorio /var/www necesitamos hacerlo con el usuario root y por seguridad no podremos. ¿Cómo lo arreglamos? Muy fácil, abrimos el archivo /etc/ftpusers con sudo gedit /etc/ftpusers y comentamos o borramos la línea de root, para el que no sepa lo que es comentar, vale con poner una almohadilla (#) delante de la palabra root.

Una vez hecho, ya podremos actualizar nuestro wordpress de manera automática.

Como medida de precaución recomendaría dejar el fichero /etc/ftpusers como estaba una vez que hayamos terminado, incluso desactivar el servidor ftp si lo podemos arrancar cuando lo necesitemos vía ssh, por ejemplo.

* Nota: es la segunda vez que escribo la entrada, la anterior era más interesante, pero me cargué la base de datos poca antes de publicarla. Así que próximamente… cómo hacer copias de seguridad en tu servidor Ubuntu.

Cómo mejorar la seguridad de los foros phpBB2

Actualización: en la rama 3 de phpbb probablemente no haga falta hacer todo ésto.

Mientras esperamos la salida de la versión 3 de los foros en phpBB, los administradores vemos cómo de un tiempo a esta parte somos acosados por el spam. Tener un foro en el que un usuario no registrado pueda escribir se ha convertido casi en una utopía, los spammers se las saben todas y para hacer su publicidad han ideado maneras de registrar usuarios muy elaboradas. Ya hay mucha gente que no permite el registro sino que mete los usuarios a mano.

Vamos a ver, este tipo de inventos (cms, foros…) se inventaron para que todo fuera fácil y cómodo y que haya unos cuantos dedicados a vender sus métodos para llenarte un foro de basura debe tener remedio. Después de probar varias soluciones (The Humanizer quizá sea la más conocida) creo que lo mejor que podemos hacer es trabajar más los captchas, es por eso que la comunidad de modificaciones de phpbb ha sacado Better Captcha, que si no me equivoco es la tecnología que traerá la versión tercera. De momento, en 24 horas no se me ha registrado ningún usuarios de spam, cuando la media anterior era de dos o tres diarios.

Al grano, que me lío.

  • Para instalar better captcha, vamos a descargar la última versión
  • Nos descargamos y descomprimimos el zip.
  • Copia todos los archivos que hay dentro del directorio root/includes que acabas de descomprimir en el directorio includes de tu foro.
  • Crea una copia de seguridad del archivo profiles.php por si las moscas y ábrelo (el original).
  • Busca el texto: include($phpbb_root_path . 'includes/usercp_confirm.'.$phpEx);
  • Sustitúyelo por: include($phpbb_root_path . 'includes/usercp_captcha.'.$phpEx);
  • Guarda los cambios y súbelos al servidor.

¿Fácil, verdad?

Ahora sólo tienes que estar atento, por si alguna de las actualizaciones de phpbb2 cambia ese archivo, ya que se perdería la mejora.

Una última cosa, quizá te parezca mal que los datos de tus usuarios registrados sean públicos, personalmente, a mi no me gusta que las direcciones de correo de tanta gente sean accesibles, así que para que la lista de miembros sea visible sólo para registrados tienes que hacer lo siguiente:

  • Abre el archivo memberlist.php
  • Busca: // End session management
  • Justo debajo añade:
    if ( !$userdata[‘session_logged_in’] )
    {
    redirect(append_sid(“login.”.$phpEx.”?redirect=memberlist.”.$phpEx, true));
    exit;
    }

Ten cuidado, igual que en el caso anterior, una actualización podría echar a perder estos cambios.