Archive for category General
Oracle VirtualBox 3.2
Leo en Ubuntulife que ya ha salido la primera versión de VirtualBox bajo la marca de Oracle. La versión 3.2 trae como principal novedad soporte experimental para huéspedes con Mac OS X. Creo recordar que, recientemente, la licencia de Mac OS X Server abrió la puerta a la virtualización (no así la versión estándar).
Hay más detalles acerca de las novedades y los bugs solucionados en la siguiente página. La descarga a través de esta otra.

Seguiremos vigilando cómo Oracle trata este proyecto…
Ahtec N10 vs. Acer Aspire Revo
El tamaño de los ordenadores de sobremesa acostumbra a ser un grave problema para tenerlos en la habitación. Yo mismo soy un ejemplo de esta problemática; me gusta trabajar en un ordenador de sobremesa, sobretodo porqué los portátiles me gustan portátiles de verdad (13 pulgadas o menos).
Para solucionar este problema hace tiempo que estaba alerta de los ordenadores de dimensiones reducidas. Con la salida del Mac Mini parecía que Aopen y Shuttle empezaban a sacar modelos que podrían llenar este “hueco” pero por un motivo u otro nunca me decidí por ninguna de esas opciones.
Ahora parece ser que ha llegado el momento de dar el paso -con dos modelos que se ajustan a mis necesidades a precios bastante atractivos- y dejar en el altillo mi vieja torre. Irónicamente ninguno de los dos modelos que vamos a mostrar pertenece a las dos marcas que provocaron mi interés por los mini-PCs o nettops (a parte de Apple).
| Ahtec N10 | Acer Aspire Revo | |
|---|---|---|
| Dimensiones | 190x150x26 mm (sin el pie) | 180x180x30 mm (sin el pie) |
| Procesador | Intel Atom N330 | Intel Atom N330 |
| Tarjeta Gráfica | nVidia GeForce 9400 | nVidia GeForce 9400 |
| RAM | 2GB DDR2 | 2GB DDR2 |
| Disco duro | 320GB (5.400rpm) | 320GB (7.200rpm) |
| Puertos | 5xUSB, Ethernet, HDMI, VGA | 5xUSB, Ethernet, eSATA, VGA, HDMI, SPDIF |
| Lector de tarjetas | SD/SDHC/MMC | 4 en 1 |
| Wi-Fi | 802.11 b/g Mini-PCI | 802.11 b/g Mini-PCI |
| SO | Sin | Windows 7 Home Premium 64-bits |
| Precio | 299 € | |
| Precio de la unidad optica externa | 49 € | 79 € |
Y a continuación las imágenes,
Ahtec N10:

Acer Aspire Revo 3610:

Personalmente me seduce más la opción de Ahtec porqué le voy a instalar la última versión de Ubuntu y con Ahtec nunca he tenido problemas con el reconocimiento del hardware, aunque objetivamente pueda parecer más interesante la opción de Acer.
Tienda de Ahtec: http://www.ahtec.net/product/espec/index.jsp?id=124
Tienda de Acer: http://www.aceronline.es/shop/acer-aspire-revo-r3610-ptscxe2003-p-2321.html
Tienda para Aopen y Shuttle: http://www.verybox.com/
Problemas con Eclipse en Ubuntu 9.10
Posted by Xavi in General, Linux, Programación Web on 11/12/2009
Si se trabaja con Eclipse, sea cual sea el lenguaje de programación que utilicemos, con el salto a Ubuntu 9.10 nos podemos encontrar que algunos botones dejan de funcionar correctamente.
Tanto con Eclipse como con otro software para Java (como Tomcat por ejemplo) soy partidario de descargar la versión adecuada del sitio web oficial. No es que no encuentre útil los paquetes .deb de los repositorios (para mi representan el 99% o más del software que tengo instalado en mi Ubuntu), sino que el software relacionado con Java me gusta tenerlo lo más “empaquetado” posible y conocer perfectamente dónde se han situado los archivos de configuración de dichos programas (a veces con el uso de apt-get perdemos un poco el control de dónde se encuentran algunos archivos de configuración).
Pues bien, como decía al principio de este apunte, con el paso a Ubuntu 9.10 he sufrido algún problema con muchas de las versiones de Eclipse (3.2, 3.4 y 3.5). El problema reside en que el programa parece no responder a según que botones. Para resolver este problema debemos crear un script (p.e: eclipse.sh) y poner los siguientes comandos:
#!/bin/sh
export GDK_NATIVE_WINDOWS=1
/path/a/eclipse/eclipse
Sustituyendo /path/a/eclipse/eclipse por la ruta donde se encuentra el archivo ejecutable de eclipse. Para arrancar damos permisos de ejecución a dicho archivo:
sudo chmod +x eclipse.sh
Y ejecutamos Eclipse desde consola o desde Nautilus con este script (siempre).
Con esto solucionaremos los problemas de los botones de Eclipse en Ubuntu 9.10

Amazon RDS – La nube de datos relacional*
Hace tiempo que trabajábamos buscando soluciones al problema de migrar aplicaciones que utilizan una base de datos relacional “clásica” a un entorno de cloud computing (más concretamente a Amazon EC2). Este problema nos llevó a interesantes estudios sobre el clúster y la replicación master-slave de MySQL hasta encontrar una solución bastante aceptable con esta última. Y después de todo este trabajo… va Amazon y lo resuelve con un nuevo servicio llamado Amazon RDS (Relational Database Service).
En pocas palabras, RDS viene a ser una puerta de acceso a una base de datos MySQL Server (de momento la versión 5.1 con InnoDB como motor principal) que corre encima de los servidores de Amazon Web Services. Amazon te proporciona una interfaz idéntica a la que utilizarías con un servidor dedicado a la base de datos pero no preguntes como funciona por debajo, no te preocupes por las actualizaciones de seguridad, no intentes acceder como si fuera un servidor normal y corriente… sólo utilízalo y disfrútalo!
Amazon RDS viene a completar la oferta de sistemas de bases de datos con SimpleDB (una base de datos muy simple para aplicaciones con una baja complejidad de datos) y Amazon EC2 Relational Database AMIs (una selección de AMIs con diferentes software de bases de datos preeinstalados).
Para interactuar con Amazon RDS, como con casi todos los servicios de AWS, tenemos la posibilidad de realizar llamadas a la API directamente o descargarnos las herramientas por linea de comandos (en mi opinión la mejor opción).
Para instalar las herramientas por linea de comandos podemos seguir los siguientes pasos:
- Descargamos las RDS Command Line Tools de la página oficial de Amazon
- Seteamos las variables JAVA_HOME y AWS_RDS_HOME necesarias en /etc/enviroment. Las linias que tendríamos que añadir son las siguientes
AWS_RDS_HOME="/path/a/la/carpeta/commandlinetools"
JAVA_HOME="/path/a/java"
En mi caso el “/path/a/java” es “/usr/lib/jvm/java-6-sun/” y si utilizas Ubuntu no creo que sea muy diferente
- El siguiente paso es añadir en el PATH del sistema el directorio /bin de las herramientas que hemos descargado. Para hacer esto, dentro del mismo archivo /etc/enviroment, añadiremos :$AWS_RDS_HOME/bin antes de las dobles comillas que cierran la expressión PATH=”blabla:/blabla:/blabla” para que quede de la forma PATH=”blabla:/blabla:/blabla:$AWS_RDS_HOME/bin”.
- Lo siguiente es abrir el archivo credential-file-path.template que encontraremos en la raíz del directorio de las herramientas y introducir nuestros datos de acceso a la cuenta de AWS.
- Una vez introducidas nuestras credenciales añadiremos la situación de este archivo en /etc/enviroment también:
AWS_CREDENTIAL_FILE="/path/a/credential-file-path.template"
Si queremos podemos modificar el nombre del fichero y moverlo a la localización que más nos guste, mientras mantengamos la informatcion de /etc/enviroment actualizada. - Una vez tengamos todo ésto solo queda reiniciar el ordenador para cargar todas estas variables y ya estaremos listos para empezar a jugar con Amazon RDS!
Me gustaría descubrir un método para recargar las variables de /etc/enviroment en caliente pero de momento los métodos que he encontrado no han acabado de funcionar correctamente, si tienes alguna sugerencia déjala en los comentarios
Bueno ahora viene la mala noticia… Amazon RDS de momento solo está disponible para Estados Unidos… Pero prometen tenerlo disponible para Europa en los próximos meses, veremos que tardan.
Os dejo un post del blog de Amazon Web Services en el que se introduce Amazon RDS enlace.
*No me agredais física ni intelectualmente por el juego de palabras!!
Dropbox y la solución a la sincronización
Si hace unos días hablabamos de Ubuntu One en el post Probando Ubuntu One hoy hacemos una pequeña reseña de lo que nos ofrece el competidor más fuerte en cuanto a almacenamiento en la nube, Dropbox.

Adoptar una plataforma u otra de almacenamiento on-line depende, en gran medida, de las necesidades del usuario. En el momento en que estaba probando Ubuntu One, mi necesidad era un servicio conocido, poco intrusivo y del cual me pudiese fiar aunque de vez en cuando tuviera que hacer copia de según que documento. Después de un periodo de estrés mis necesidades han cambiado ligeramente y por eso decidí cambiar.
Por un lado, mi ordenador personal se trata de un Macbook de finales de 2007 con Mas OS X Leopard y Ubuntu funcionando en diferentes particiones. En la partición de Ubuntu no había problema pero para Mac (igual que para otros sistemas operativos) no hay ningún cliente y se tiene que recurrir a la aplicación web. Esto para usuarios básicos no tiene menor importancia, pero para alguien que está demasiado bien acostumbrado a que los archivos se sincronicen en segundo plano no es aceptable.
Por otro, el cliente de Ubuntu One dejó de funcionar en mi portátil del trabajo (tengo instalada la versión de 64 bits). Otro contratiempo que me hacía recurrir a la aplicación web en el emplazamiento dónde más uso este tipo de servicio… un coñazo hablando en plata!
Dropbox me llamó la atención cuando mi hermana, usuaria muy básica de informática, me dijo que para su trabajo (es ilustradora) le iba genial ya que podía compartir sus archivos con las editoriales y le resultaba mucho más fácil que por FTP.
Dropbox ofrece una aplicación web muy sencilla, clientes para un gran número de sistemas operativos y un sistema de compartición de archivos también muy sencillo, todo con un grado de fiabilidad satisfactorio (lo que he probado hasta el momento). Comentar que, en Leopard, Dropbox ofrece mostrar el icono habitual en la barra de menú con la caja de color azul o un icono alternativo en blanco y negro que se integra mucho mejor con el sistema. Quizás es sólo una curiosidad o quizás es una muestra del nivel de detalle que nos puede llegar a ofrecer este servicio… depende con los ojos con los que se mire.
Si quereis probarlo aquí teneis el enlace: http://www.getdropbox.com/
'Minutillos' musicales
Posted by Xavi in General, Redes sociales on 24/08/2009
Debido a la naturaleza de los proyectos llevados a cabo en Iceberg tenemos que investigar en redes sociales de ámbitos muy diversos. Una de las redes sociales que nos despierta un gran interés es Last.fm.
Investigando las funcionalidades de Last.fm me encontré con un error del sistema y me pareció curioso el tono en que me comunicó el error

Por si no se ve correctamente el texto en castellano lo reproduzco:
Perdón, lamentamos que nuestros servidores de base de datos esten sobre cargados en estos momentos. Por favor, vuelve a intentarlo dentro de unos minutillos.
Probando Ubuntu One
Hace días se anunció la disponibilidad del servicio Ubuntu One en fase Beta (pero parece que beta de verdad, no como la beta de GMail…). Hacía tiempo que quería probar un servicio de sincronización de archivos entre diferentes equipos pero no me decidía y Ubuntu One me ha proporcionado un puerta abierta que no me he resisitido ha cruzar.

Para acceder a este servicio es necesario la creación de una cuenta de Launchpad y realizar una petición para recibir una invitación que nos permita acceder a Ubuntu One. Una vez recibida la invitación el proceso para activar la sincronización en un equipo es insultantemente fácil para un usuario avanzado de Ubuntu: Nada de consola, nada de gestión de repositorios, nada de nada, sólo unas pocas ventanas con pocos botones y ya tenemos el servicio activado y una carpeta llamada Ubuntu One dónde se sincronizarán todos los archivos que copiemos allí (si no excedemos de los límites de nuestra cuenta, en mi caso 2GB).
El servicio me ha provocado un alto grado de satisfacción pero se ha colgado un par de veces y he tenido que sacar algun archivo de la carpeta en cuestión para que sincronizara bien. Todo dentro de mi grado de permisividad de un servicio tan joven.
El único punto un poco oscuro es la ausencia de clientes para otros sistemas operativos y para otras distribuciones de linux, quizás para el periodo de pruebas se ha decidio sólo dar soporte a Ubuntu (+9.04) y que los otros se conecten por el cliente web pero en el fututo sí que darán soporte… yo así lo espero… Si no siempre nos quedará Dropbox, un servicio con más tiempo de vida totalmente multi-plataforma (pero del que no voy a dar mi opinión porqué lo desconozco totalmente).
Autenticar un usuario en Zend Framework – Identificar usuario
Siguiendo el hilo del apunte anterior vamos a ver como identificar un usuario una vez programado el adaptador.
El componente Zend_Auth implemente el patrón Singleton de diseño. Esto quiere decir que en todo momento sólo tendremos una instancia de esta classe y que para obtenerla deberemos utilizar su método estático getInstance(). La instancia de Zend_Auth será la que utilizaremos para identificar al usuario una vez obtengamos sus datos.
Formulario para identificar
Para identificar un usuario, en nuestro caso, nos hace falta conocer su nombre de registro (nickname, mail o lo que se utilice) y su contraseña. Con un formulario estándar nos bastará:
<form action="/authentication/login" method="post">Podemos observar que el formulario apunta al controlador AuthenticationController y la acción loginAction. Aquí es dónde identificaremos el usuario.
<input type="text" name="username"/>
<input type="password" name="pwd"/>
</form>
Identificar el usuario en el controlador
Para identificar al usuario deberemos implemetar la acción loginAction dentro del controlador que se encargue de identificar a los usuarios (no tiene por qué ser AuthenticationController). Veamos un ejemplo:
<?phpA partir de aquí se puede diferenciar más el comportamiento del sistema en función del $res->getCode() por ejemplo. Un switch-case nos puede servir para diferenciar un error en el nombre de usuario o en la contraseña.
class RegisterController extends Zend_Controller_Action{
...
public function loginAction(){
require_once('/path/to/AuthenticationAdapter.php');
$auth = Zend_Auth::getInstance();
/* Comprovaciones de que $_POST['username'] y
* $_POST['pwd'] existen */
if(/* Existen y cumplen las restricciones*/){
$adapt = new AuthenticationAdapter($_POST['username'], $_POST['pwd']);
$res = $auth->authenticate($adapt);
if($res->getCode() == Zend_Auth_Result::SUCCESS){
/* Esta línea es muy importante porqué es la que nos grabará los datos que hemos
* introducido en la variable $sessionData (en el post anterior) en la session */
$auth->getStorage()->write($result->getIdentity());
}
}
}
Consultar si un usuario está identificado
Una vez identificado el usuario y guardados los datos que queremos (session) tendríamos que poder acceder a esta información desde cualquier punto del sistema. Esto se puede hacer a través del método hasIdentity() del componente Zend_Auth. Veamos un ejemplo de como lo utilizaríamos si quisiéramos redirigir a la página principal un usuario que no está identificado:
/* En alguna action que no queremos que los usuarios no identificados vean */Espero que a partir de aquí podais identificar vuestros propios usuarios
$auth = Zend_Auth::getInstance();
if($auth->hasIdentity()==true){
/* Si está identificado guardaremos los datos
* que pusimos en $sessionData en la variable $identity */
$identity = $auth->getIdentity();
}else{
/* Si no está identificado lo redirigimos al document root */
$this->_redirect('/');
}
Os dejo la dirección del manual de referencia del Zend Framework porqué, una vez llegados a este punto, las posibilidades que tenemos con Zend_Auth son enormes.
Si teneis alguna duda ya sabeis, comentad!
HTC Magic G2, la fiesta se anima
Posted by Xavi in General, Móviles y Internet móvil on 26/02/2009
Parece ser que los clientes de Vodafone por fin vamos (una de mis dos lineas es de Vodafone) a tener algo de lo que “chulear” “chorrear”
después de que Movistar se haya llevado el pez al agua con la exclusividad del iPhone y el HTC “Dream” G1. Al consultar mi factura vía web este mes me he dado cuenta de un pequeño apartado que Vodafone ha abierto en su página inicial:

Si accedemos sólo vamos a encontrar información muy básica y un formulario para que nos envíen más información acerca del teléfono… pero algo es algo después de vernos desposeidos de la posibilidad de disfrutar del iPhone o del HTC Dream no?.
El gran éxito de esta nueva generación de teléfonos móviles depende en gran medida de su sistema operativo y las aplicaciones de terceros que estos puedan ejecutar. Apple fue el primero en dar el golpe con la primera generación del iPhone (que no llegamos a ver de forma oficial en todo el territorio estatal) y Google quiere seguirle los pasos pero no cuenta aun con la gran cantidad de aplicaciones que hay para el terminal de la compañia de Steve Jobs.

¿Pero realmente estos terminales son tan diferentes de un ordenador portátil? Si instaláramos el sistema operativo de un iPhone en un netbook (funcionando al 100%) y este tuviera un módem 3G, ¿No podríamos hacer practicamente lo mismo? De momento ya se ha instalado Android en un Asus eeePC. Como consecuencia de la aparición de estos móviles, a los programadores web se nos viene encima otro reto, adaptar las páginas web a resoluciones y tamaños de pantalla mucho más pequeños que los que se tenían en cuenta (justo ahora que ya empezábamos a abandonar los 800×600!!!).
¿Va a entrar definitivamente Google en el mundo de los sistemas operativos a través de Android? En mi opinión… eso sería fantástico pero tiempo al tiempo…
Bienvenidos y gracias por entrar
Bienvenidos a mi blog ‘semi-professional’ de un programador web. Entre funciones, clases y variables intentaré reseñar aquí algunas de las cosas que me parezcan interesantes sobre la programación web, Internet o la sociedad de la información en general que vaya descubriendo durante mi día a día.
Vaya por delante la sinceridad, me encanta trabajar en entornos Linux, disfrutar de la informática en casa con mi Macbook blanco y soñar en poder comprar algún día un iPhone con unas tarifas de navegación 3G asequibles… pero asequibles de verdad. Con este breve resumen intento situar más o menos de que van a ir mis escritos.
- Páginas web o apartados de páginas web curiosos: Sí
- Temas de interés general en la sociedad de la información: Sí
- Aparatejos para conectarse a internet desde cualquier punta del planeta: Sí.
- Comentarios sobre temas frikis de software libre: Sí (o se intentará)
- Documentos para recordar como se configura un servidor virtual, PHP5 para manejar imagenes y similares: Muchos
- Tips de programas de Microsoft: Pocos
Bueno, ya tengo en mente el primer post realmente interesante así que nos leemos dentro de poco.
El último que deje la puerta bien abierta…


Comentarios recientes