Importancia de Modelar bien la base de datos ANTES de poblarla con datos

Supongamos que luego hemos iniciado un proyecto que involucra una base datos. Ya funciona el programa, busca/ingresa/edita/elimina datos como se suele hacer.

Luego nos damos que el programa comienza a dar síntomas extraños, como desplegar datos demás, mostrar datos cruzados, que no muestre lo que debería o derechamente nos tira errores. Entonces nos damos cuenta que la base datos es el problema, ya que hay datos cuyas relaciones se han quebrado por ingresar mal un dato, o borrar registros.

He acá la importancia de definir las restricciones ANTES de ocupar la base de datos.

Seguir leyendo Importancia de Modelar bien la base de datos ANTES de poblarla con datos

Ajax. No tan dificil como pensaba

Extraño, pero me vi en la NECESIDAD de implementar Ajax. y destaco necesidad, porque perfectamente se puede hacer una app basada en web sin una linea de javascript.

El problema surgió porque en el modulo de ingreso de ventas de mi «sistema-manejador-de-tiendas-sin-nombre» necesitaba un formulario que se pudiera llenar de productos, a partir de una lista de productos preexistente.

Podría haberlo hecho con un formulario con un campo select, y un boton añadir que al presionarlo añadiera un producto, recargara la página y perder precioso tiempo en la tediosa tarea de ingresar los productos.

Sin embargo, con Ajax resulto mucho más rápido, y de un acabado más fino.

Seguir leyendo Ajax. No tan dificil como pensaba

Starcraft II

Starcraft IINo lo puedo creer. Sí, si lo creo. Aunque hoy ya no es noticia, Blizzard anunció en su web el próximo lanzamiento (aun sin fecha) de la versión 2 de Starcraft, juegaso que su versión 1 (y expanción broodwar) hasta el día de hoy es muy jugado.

10 años de espera, parece que valieron la pena. Acá está el Cinematics video:

Acá escenas in-game:

Y más videos Gameplay en alta calidad: http://www.gametrailers.com/gamepage.php?id=4868

Ha llegado a mi casa Kubuntu Feisty Fawn

Hoy llegó a mi casa la última versión de la popular (y mi favorita) distribución Kubuntu Feisty Fawn 7.04

Estoy muy contento con esta distro, tanto que ya no la cambiaría por otra. No la cambiarí pero eso no quiere decir que deje de probar más distros.

Afortunadamente tengo suficiente disco como para probar. Cuando me aburra de opensuse, la vuelo y probaré más distros, tengo muchas ganas de conocer Arch, Gentoo, y otras distros basadas en rpm, pero Kubuntu no lo elimino por nada.

Tengo todo lo que necesito, aceleración gráfica, beryl, herrmientas para desarrollar, servidores de bases de datos, web, leo y organizo todas las cuentas de correo, chateo por msn, navego con todos los plugins necesarios, edito imágenes, escribo código, hago documentos de oficina, escucho mi música, uff…

En realidad lo mismo que se puede con cualquier distro, pero ya le dedique tanto rato a tenerlo todo a mi pinta, que simplemente no la cambio.

GDT en OpenSuse 10.2

Así es. Logre compilar perfectamente GDT en OpenSuse. Realmente es lo mismo que en Kubuntu, salvo que en este caso, no todas las dependencias se encuentran en los repositorios que trae la distro por defecto.

El mismo driver de nvidia fué un dolor de cabeza.

De hecho no está el mismo cmake, que es vital para poder hallar las dependencias y poder compilar con ellas.

Acá un hay un screenshot del Juegodemo corriendo en Opensuse.

Seguir leyendo GDT en OpenSuse 10.2

OpenSuse 10.2, mi nuevo Sistema Operativo

openSUSE LogoPero claro, no significa que reemplacé Kubuntu por OpenSuse, ahora ambos conviven en el mismo equipo, incluso mismo disco duro. Gracias nuevamente al Allan, quien me prestó el DVD.

Procedo a relatar la experiencia y comparar algunas cosas con las otras distros que he probado.

Mi historia con Suse

De partida, creo que Suse fué la primera distro que ví, cuando conocí Linux en el difunto programa de TvNauta de UCVTV. Esto ya hace unos 6 años si la memoria no me falla. Aunque las primeras disrtos que probé eran basadas en RPM, nunca probé Suse hasta hoy.

Instalación

Bien, al bootear el dvd, me apareció lo clásico, un menú convarias opciones de booteo, he aquí la primera similitud con ubuntu, con la tecla F2 se puede cambiar el idioma de ahí en adelante. Escogí la instalación gráfica.

Luego de detectar el hardware, apareció el instalador. Podría decir que es algo similar al de Fedora Core 2 (no, no he probado un fedora más nuevo y no tengo ganas) comenzó a preguntarme algunas cosas sencillas. Acá una gran diferencia con ubuntu. Aún siendo un DVD, no es live, es sólo instalador. Abría sido más entrete si mientras instalaba hubiese podido navegar por internet y relatar mi experiencia en vivo en mi blog, pero bue…

El momento que pasé susto fue en el particionado :shock:. Por defecto, OpenSuse escoge el mejor lugar donde ser instalado, aunque da opción de poder editar el particionado, no leí lo que estaba haciendo, y al darle click en siguiente me formateo la partición que escogió como raíz. Afortunadamente, la partición formateada era aquella que tenía destinada a instalar Solaris, pero ya que no pude, lo aproveché con OpenSuse. Luego del susto, volví a comenzar con la instalación. Esta vez a parte de escoger manualmente la partición que quería instalar, esta vez le dí formato como ReiserFS, y le asigné puntos de montaje a mis otras particiones.

Luego de eso, me dio opción de escoger paquetes (Kubuntu no, aunque nada que ver comparar un dvd con un cd). Además de los paquetes predeterminados, escogí Escritorio KDE y los paquetes de Desarrollo de C/C++.

Se copiaron un montón de paquetes, reinició, extraje el dvd. Al bootear noté ya se había instalado una nueva versión del menú de GRUB, el cual detectó sin problemas tanto Windows como Kubuntu. Ahora al bootear con opensuse desde el disco, me apareció el mismo instalador, pero con los pasos más adelante. Me preguntó la contraseña de root, un nuevo usuario, si quería configurar la red (apliqué el test de dhcp, y me conecto de inmediato). Lo que me impresionó fue que luego de eso, me pregunto si quería actualizar mi sistema. Eso lo encontré genial, en la misma instalación permite dejar el sistema al día, es más otra característica importante es la de los paquetes delta. Estos contienen sólo las diferencias con los paquetes antiguos, no el nuevo completo, haciendo más ligeros los paquetes permitiendo ahorrar tiempo y ancho de banda.

También me consultó si quería ajustar mi hardware (ahora no reccuerdo si me preguntó al principio o al final). Finalmente volvió a reiniciar, y comencé por fin a probar OpenSuse instalado.

Seguir leyendo OpenSuse 10.2, mi nuevo Sistema Operativo

En un viejo nuevo proyecto

Aunque suene raro.

Hace años que comencé con la idea de hacer mi propio CMS (Content Manager System, o Sistema de Manejado de Contenidos) usando PHP y una base de datos. Hablo de al menos 5 años atrás cuando comencé a programar PHP en serio, después de haberlo conocido unos meses (pocos días después que me conecté a internet por «banda ancha» por primera vez).

Pero de a poco me di cuenta que el trabajo se pone cuesta arriba. El lema «dividir para conquistar» se va a las pailas cuando el número de sub-problemas comenzó a crecer, y para peor, varios dependían de la solución de otros. Pensé entonce que no sería capaz de hacerlo sólo y compartí el código, en aquel entonces nadie aportó ni una misera linea

Como hacer un archivo Swap

A veces por casualidades de la vida, nuestra partición swap nos podría ser insuficiente. En mi caso, intentaba instalar Oracle 10g Express Edition, usandoun repositorio debian, pero al llegar a la etapa de pre-instalación, ambos paquetes (oracle-xe-universal y oracle-xe-client) me daban un curioso mensaj. En resumen, ambos me pedian tener 1 GB de swap, pero mi swap es de 300 MB más o menos. Así que para variar consulté en los foros, y me dieron esta estupenda idea:

Ejecutar como root:

dd if=/dev/zero of=/swapfile bs=1024k count=1000
mkswap /swapfile
swapon /swapfile

Seguir leyendo Como hacer un archivo Swap

Jugando a la nostalgia con Blender

Lejos, la charla que más me impresionó (excluyendo la mía obviamente) en Flisol 2007 Santiago fue la de Blender, y no por que no conociera las capacidades de Blender, sino porque no había visto en vivo un modelo tan bueno. En la ocasión, el expositor nos mostró un modelo muy detallado y bien hecho de un Varitech (avión transformable de Robotech), incluyendo animación.

Hace poco volví a ver un video de lo más nostálgico, ¿recuerdan a Espartaco y el sol bajo el mar?, acá está uno de los momentos clásicos en la serie, el baile de Bic y Bac:

Ambas cosas me hicieron converger en una idea… ¿y que tal si hago a Bic o Bac en Blender?

Y así, me puse a trabajar en el modelo hasta que me quedó:

¿Que tal? y eso que no soy gran diseñador, solo usé un mouse y partí moldeándolo desde un cubo.

La textura no está terminada (la nariz es rosada por dentro y me falta pintar las rayas de las pernas) , y tampoco tiene esqueleto, así que por el momento no lo puedo animar, pero de que se puede, SE PUEDE!

Instalando Ruby On Rails en Kubuntu Feisty Fawn

Esto fue lo que hice para echar a andar Ruby on Rails en mi instalación de Kubuntu.

  1. Instalar la siguiente lista de Paquetes:
    sudo apt-get install ruby ruby1.8 ruby1.8-dev rdoc ri irb libgems-ruby1.8libopenssl-ruby1.8 rubygems rails
  2. Luego nos posicionamos en una carpeta donde guardaremos nuestros proyectos:

    mkdir proyectos_ror
    cd proyectos_ror
  3. Esta carpeta puede ser aquella donde tenemos nuestras páginas web como /home/usuario/public_html o quizas /var/www/

  4. Creamos nuestro proyecto con:

    rails mi_primer_proyecto_ror
  5. Para probarlo con el servidor Webrick, se puede hacer esto:

    cd mi_primer_proyecto_ror
    script/server
    Luego, para acceder a la aplicación, debemos ingresar con nuestro navegador web preferido por la url http://localhost:3000

Faltan detalles, pero en la marcha voy a completar (y complementar) este how-to.

blog respaldo anti-amnesia