Latest entries
Forzar la administración Django a usar SSL
22 May 2010
Django ofrece un panel de administración de forma automática. Voy a explicar brevemente como podemos forzar que todo lo que se realice a través del panel de administración vaya a través de una conexión segura: SSL.
Para ello vamos a hacer uso del módulo rewrite que ofrece Apache. Este módulo nos permite reescribir las peticiones antes de que se procesen. Esto se suele utilizar mucho en PHP para que la URI sea más bonita, cosa que en Django no es necesario.
Apache2: Invalid command 'SSLEngine'
21 May 2010
Llevo un par de días investigando el tema de Certificados Digitales, SSL y HTTPS. Aprovechando que tengo que hacer un trabajo acerca de las Autoridades de Certificación (CA) y los Certificados Digitales estoy añadiendo un certificado para el blog. Y como no, ¡menudo problema!
$ sudo service apache2 restart
* Restarting web server apache2
Syntax error on line 10 of /etc/apache2/sites-enabled/ssl:
Invalid command 'SSLEngine', perhaps misspelled or defined by a module not included in the server configuration
[fail]
Breves: Forzar la lectura de un entero en C++
11 May 2010
Cuando estamos programando en C++ y leemos un entero por terminal, nadie garantiza que realmente se lea. Imaginemos lo siguiente:
int entero;
cin >> entero;
Y cuando se ejecuta el programa, el usuario escribe una 'a'. ¿Qué ocurre? Pues que el programa se sigue ejecutando y el entero no se ha leído.
Breves: Leer de cin después de cerrarlo en C++
11 May 2010
Vamos a ponernos en contexto. Estaba escribiendo un programita en C++ el cuál hace uso de una función que lee desde un flujo (en este caso cin) hasta que encuentra EOF. Escribiendo en terminal podemos simular un fin de fichero pulsando Ctrl+D, pero como consecuencia, también cierra el flujo o lo que es lo mismo, ya no podemos seguir leyendo más datos a través de cin. Todo intento de lectura dará un error.
Breves: Cómo saber si un campo es nulo con JDBC
3 May 2010
Cuando en una tabla se permiten columnas con valores nulos, es necesario checkear que realmente tienen un valor antes de utilizarlo para evitar un java.lang.NullPointerException.
Obtener claves autogeneradas en una consulta
3 May 2010
Supongamos la siguiente situación. Tenemos una tabla en la que la clave primaria es un identificador auto incremental. En mi caso,utilizando MySQL ( por obligación :), la tabla sería la siguiente:
CREATE TABLE `tableName`
(
`id` INT NOT NULL auto_increment,
`name` VARCHAR(20),
PRIMARY KEY(`id`)
);
El problema es independiente del Sistema Gestor de Bases de Datos (SGBD) ya que estoy trabajando a través de JDBC, pero la creación de la tabla si puede diferir en función del que se esté utilizando.
Ahora realizamos una nueva inserción, pero ¿cuál es el identificador que el SGBD ha asignado a la tupla?
Vodafone Mobile Connect en Ubuntu
1 May 2010
Hoy he estado viendo como instalar y configurar el modem de Vodafone en Ubuntu 10.04 aprovechando su reciente lanzamiento. Y sinceramente, el proceso a resultado mucho más sencillo de lo que yo esperaba.
Breves: Desaparecen los elementos del panel
29 April 2010
Algunos de los componentes que he estado desarrollando últimamente trabajan con parte de la interfaz dinámicamente, de forma que los componentes se crean, añaden y eliminan durante la ejecución de la aplicación.
Después de hacer una llamada a algún remove del panel, todo lo demás desaparece.
Configurar TinyMCE con Django en Ubuntu
25 April 2010
Aprovechando el lanzamiento de TinyMCE 3.3.3 y que voy a actualizarlo en el servidor, voy a explicar como podemos configurar Django para que todo funcione bien. Para hacer uso de TinyMCE utilizo una aplicación de Django que está en los repositorios de Ubuntu, el cual instala como dependencia a TinyMCE. La aplicación en cuestion está en el paquete python-django-tinymce.
Breves: Los componentes del JPanel no aparecen
25 April 2010
Esto es un problema que aparece cuando tratamos de generar partes de la interfaz por código. Creamos un panel, añadimos distintos componentes y añadimos el panel que acabamos de crear a un frame. Le damos a Run y allí no se ve nada.
Breves: Componentes Swing translúcidos
23 April 2010
Ahora le toca el turno a la transparencia. Realizar componentes translúcidos es bastante sencillo. Podemos incluso a realizar efectos fade-in y fade-out jugando con la transparencia y un temporizador. Realmente no sé como afecta esto al rendimiento de la aplicación, porque no he llegado tan lejos.
Swing: el tamaño de los componentes y los Layout
23 April 2010
Uno de los problemas con los que me he encontrado es que en algunas ocasiones, cuando estaba desarrollando en un JFrame, me resultó imposible hacer un botón del tamaño que deseaba. Por más que utilizaba los métodos setSize() y/o setPreferredSize(), aquello hacía caso omiso. Tras muchas vueltas por fin encontré la respuesta.
Swing y las pantallas táctiles
23 April 2010
Ahora mismo estoy en el equipo de implementación desarrollando la práctica de Ingeniería del Software 3. Estamos desarrollando las interfaces sobre Swing y sinceramente estamos experimentando más problemas de los que me imaginaba.
El principal obstáculo es que la interfaz que estamos desarrollando está enfocada a una pantalla táctil de 23 pulgadas, por lo que los componentes de Swing no son aptos directamente.
En estos días intentaré realizar una serie de artículos al más puro estilo "¿Qué cojones? ¿Por qué coño no funciona?"
Apache y sus recursos
11 April 2010
Actualmente este sitio está alojado en un servidor virtual que ofrece SliceHost. Por temas económicos, tengo contratado lo mínimo: 256 slice, que sólo me ofrece 256 MB de Ram. Y aquí es donde entra en juego Apache.
Breves: No incluir número de página en la portada
10 April 2010
Esta se la debo a un colega que hizo la labor de investigación :) Nuevamente, tras bucear mucho por los menús de Lyx y no encontrar la opción para indicar que no muestre el número de página para determinadas páginas, recurrimos a la receta.
La teoría es cuando crees saber algo, pero no funciona.
La práctica es cuando algo funciona, pero no sabes por qué.
Los programadores combinan la teoría y la práctica:
Nada funciona y no saben por qué.

