domingo, 28 de junio de 2009

Olap y hsqldb, funcionará? Empecemos por instalarl hsqldb

Voy a probar como funcionaría una base liviana como hsqldb en una aplicación olap. Si bien no es de esperar que esta base maneje gran cantidad de información, tiene algunas ventajas:
- Fácil de implementar.
- Requiere poca cpu y memoria.
- Compatible con mondrian.
- Soporta tablas en archivos, lo cual es facilida la importación/exportación de datos. Esta característica es interesante, ya que podría simplificar la carga de archivos.
- Sería posible usar un mecanimo para cargar solo las bases usadas, lo cual contribuye aún más al ahorro de cpu y memoria.

Me queda la duda sobre si es fácil modificar los esquemas de las tablas. Esto es algo deseable ya que permitirá que cada tenant pueda modificar su esquema de datos fácilmente.

Esto fue lo que hice paso a paso:

1ro instalar hsqldb. Para eso hay que bajar la base desde el sitio oficial, downloads (formato zip)

Yo la descomprimí en /home/downloads/hsqldb y luego la moví a user/local/ haciendo:
# sudo mv hsqldb /usr/local/

Luego, para ver si funciona ejecuté /demos/runmanager.exe

creé una tabla:
create memory table customers (id integer, name varchar)

inserté un registro:
insert into customers (id, name) values (1, 'Fernando');

e hice un select * from customers

Para integrar la hsqldb con eclipse, encontré un plugin, pero no lo pude hacer funcionar:

sábado, 27 de junio de 2009

Green IT Baseline

Uno de los motivadores de este proyecto es el de minimizar el impacto ambiental. Para entender mejor cómo conseguir este objetivo voy a empezar por estimar cual es la base de consumo energético. Encontré en Forrester una calculadora para hacer esto que permite calcular el consumo energético, emisión de CO2 y su costo:

Este es el consumo estimado de los aparatos eléctricos usados:
- notebook: 25w
- pc server: 100w
- telefonos: 4.5w
- router: 11w
- luz: 40w

Para estimar el tiempo se uso, asumí:
- Jornada de trabajo semanal de 80 horas.
- Telefonos, router y server están siempre encendidos.

Según la caluladora, estos son los resultados:

Annual Emissions Annual Dollar Costs Annual Energy Draw
(lbs. of CO2)* ($)** (kWh)
Green IT baseline, outside of the data center: 182 13 136
Total of Data center IT equipment: 1303 92 972
Total of data center facilities equipment: 103 7 77
Green IT baseline, inside of the data center: 1406 99 1049
Total Green IT baseline: 1588 112 1185
*Annual Emmissions calculations based on 1.34 pounds (lbs) of CO2 emissions per kWh.
**Annual Dollar Costs calculations based on $0.0946 per kWh.
Data center power usage effectiveness (PUE) ratio: 1.079
Data center infrastructure efficiency (DCiE) ratio: 0.073


Este simple ejercicio me ayuda a entender un poco mejor el problema y cómo mejorarlo.

El server es un estimado de tener una pc encendida 24hs. En la práctica esto será un servicio provisto por un datacenter. En este punto se me ocurren algunas cosas, como por ejemplo utilizar maquinas virtuales, el servicio EC2 de amazon, elegir datacenters con responsabilidad ambiental como el caso de google, etc.

En mi casa, el mayor consumo lo tengo en los aparatos que están encedidos 24hs, como router y teléfonos. Estos aparatos son de corriente continua, por lo que es fácil y óptimo alimentarlos con paneles solares. Le siguen la iluminación y la notebook (figura como pc). Por suerte la notebook ya tiene un consumo de energía optimizado.

domingo, 14 de junio de 2009

De 0 a un desktop java desarrollo en un fin de semana

Si bien la distribución ubuntu tiene features muy buenos que facilitan muchas tareas, para alguien del mundo windows se hace un poco dificil comenzar. Asi que aca comparto una lista de pasos para crear un desktop desarrollo vmware con ubuntu 9.04, java6, eclipse for Java EE, tomcat6 y mysql.

1ro bajar una imagen vmware de ubuntu desktop 9.04 (esta versión es de 32bits).

La imagen baja en un formato que se puede descomprimir con winrar. Descomprimir y ejecutar. Ingresar con el usuario vmplanet y pass wmplanet.net. Al iniciar ubuntu se instalarán varias actualizaciones.

2do crear un nuevo usuario (http://www.cyberciti.biz/faq/howto-linux-add-user-to-group/). Esto no es necesario, solo lo hago para usar mi usuario en lugar del creado por quienes crearon la virtual. Para crear el usuario (desde application, accesories, terminal):
# sudo adduser fer

Luego de crear el usuario, veo que no puedo ejecutar sudo. Si tipeo visudo veo que sólo el grupo admin puede ejecutar este comando. Para agregar el usuario al grupo:
# usermod -a -G admin fer

La virtual viene con el usuario vmplanet. Para ver a que grupos pertenece el ussuario (yo asigne mi usuario a todos estos grupos):
# id vmplanet

3ro instalar vmware tools, aún no lo hice, pero aca lo explican muy bien

4to Instalar la ultima version de java:
# sudo apt-get install sun-java6-jdk

luego hay que setear la variable JAVA_HOME haciendo:
# sudo gedit /etc/environment

y agregando:
JAVA_HOME="/usr/lib/jvm/java-6-sun"

5to Instalar eclipse. Primero lo hice de los repositorios de ubuntu, pero después me di cuenta que no está displonible la última versión. Asi que lo mejor es instalarlo a mano. Primero lo baje del sitio de eclipse en /home/fer/downloads. Luego lo descomprimi en /home/fer/downloads/eclipse.

Algo que me costó un poco entender es la estructura de carpetas de linux. En este link lo explican bien: http://www.pathname.com/fhs/pub/fhs-2.3.html. Asi que moví eclipse a /usr/local/eclipse haciendo:
# sudo mv /home/fer/downloads/eclipse/ /usr/local/

Para agregar el item Applications, Programming, Eclipse solo hay que hacer boton derecho sobre el menú. El ícono se puede descargar de http://www.gnome-look.org/content/download.php?content=87185&id=1&tan=22085695&PHPSESSID=f489f7fb7b47f9313a92f7c68d795054

6to Instalar tomcat 6. Primero lo hice usando los paquetes apt-get. Pero me di cuenta que luego no funciona con el eclipse. Asi que los desintalé y lo instalé manualmente (en /usr/local/apache-tomcat-6.0.20):

para crear un usuario manager y poder acceder a manager webapp (http://localhost:8080/manager/html), editar tomcat-users.xml
# sudo gedit /usr/local/apache-tomcat6-6.0.20/conf/tomcat-users.xml

y agregar:
<role rolename="manager"/>
<user username="tomcat" password="tomcat" roles="manager"/>

Para acceder a host-manager webapp (http://localhost:8080/host-manager/html) se debe crear un usuario con el rol admin:

<role rolename="admin"/>
<user username="tomcat" password="tomcat" roles="manager,admin"/>

luego iniciar tomcat con /bin/startup.sh

7mo instalar mysql. Desde applications, add/remove se pueden instalar mysql administrator y mysql query browser.

Para instalar mysql server:
# sudo apt-get install mysql-server mysql-client

viernes, 12 de junio de 2009

Energía Solar

Una de las ideas que me está dando vueltas en la cabeza es la de instalar en casa paneles solares y usarlos para alimentar la máquina con la que voy a desarrollar este proyecto. Buscando en internet encontré este video que explica muy claramente como es una instalación de energia solar.


Y de ahi llegué a Bill Mollinson, un australiano con una visión muy clara del problema ambiental.


Habla de cosas como adaptación, agilidad, estabilidad dinámica, cambio permanente (temas comunes al mundo de software). Su idea se basa en algo simple, auto organizado (cualquier similaridad con las metodologías ágiles es pura coincidencia). Plantea que la agricultura está pensada para ganar dinero, no para generar comida. Por lo tanto, no cuida ni hace un uso responsable de los recursos naturales. Primera idea a copiar: hacer una aplicación para minimizar el impacto ambiental, no para ganar dinero!

Otra idea interesante tomada de la industria de los pollos es que la energia usada para producir el producto tiene que ser menor a la ahorrada (para producir un huevo se requiere la energía de 9). Sino, no hay beneficio energético.

Es algo probado en la práctica que las ideas simples son las que mejor funcionan. La naturaleza es sabia, está llena de ejemplos donde se aplican conceptos como simplicidad y armonía. Qué habría que copiar de la naturaleza para conseguir una aplicación que minimice el impacto ambiental?

Que pasaría si casi no utilizara energía electrica para llevar adelante este proyecto? Podría minimizarla a cero? Sería interesante hacer una prueba, compartirla y fomentar este tipo de ideas para que más personas la puedan poner en práctica.

Hay mucho trabajo por hacer, asi que lo mejor es empezar de a poco y con algo simple. Tengo un patio en casa donde podría armar un "rincón ecológico". En ese rincón por ahora está colgada la bicicleta con la que voy todos los días a trabajar. Voy a ver como agregar los paneles solares al rincón...

Lo de la huerta en el balcón es una idea muy buena también, por el ahorro energético que implica tener los alimentos en el lugar de consumo (otra idea para sumar al rincón ecológico). Lo que como también cuenta como energía requerida por este proyecto.


Creo que se pueden hacer muchas cosas que están al alcance de un ciudadano común.