Notas Informáticas

viernes, octubre 06, 2006

TRUCO WINDOWS: De imagen iso videocd a mpg4

Programas utilizados:
isobuster, ipod video converter (este es gratuito y puede convertir casi cualquier formato a mpg4, incluidos los real media (.rm)...

Pasos

  • extraer de la imagen del cd el contenido con isobuster o similar (interesa la carpeta MPEGAV)
  • Una vez eztraidos convertir con el ipod video converter los archivos .dat de la carpeta MPEGAV
  • Y ya los puedes reproducir con el quicktime o con lo que quieras.

jueves, marzo 30, 2006

Conceptos Ingenieria de Software enfocado a JAVA

Persistencia.

Necesidad de mantener información, estado...

Normalmente toda aplicación JAVA (empresarial) trabajará contra una base de datos (hoy día, relacional) en la que se almacena información que queremos que persista.

Según las buenas prácticas de ingeniería del Sofware toda aplicación Orientada a Objetos debe organizar sus clases según "concern" y lo típico es distinguir tres (la famosa arquitectura de tres capas): Presentación, lógica de negocia y persistencia. La capa de persistencia es la que trata con la base de datos u otros orígenes de datos (pueden ser varios y heterogéneos). Suele usarse un cuarto grupo de clases que son las de utilidad o ayuda que se emplean en todas las capas. La arquitectura de capas aisla unas capas de otras de manera que una capa sólo se comunica con la inferior y la además sólo depende del interfaz de esta. En Java suelen usarse interfaces para asegurarnos de esto.

Implementaciones de persistencia en programas JAVA:

-directamente SQL-JDBC:Aplicaciones pequeñas.

-DAO (es sql - jdbc pero encapsulándolo para las capas superiores)

-ORM:Hecho a mano

-ORM:Aplicaciones comerciales u Opensource genérica.

martes, marzo 14, 2006

Disco SATA y Debian sarge

Esto es un añadido que tampoco tiene mucha relación: El caso es que mi disco de 160GB es SATA (ver debian lvm). La instalación de debian sarge usa un kernel 2.4 donde los sata no se tratan aún como scsi, luego el dispositivo es hda. Pero si instalamos el kernel 2.6 el dispositivo pasa a ser tratado como scsi y pasa a ser sda. Pues lo que ocurre es que con las particiones+lvm tras instalar al reiniciar observo que me da un error en el arranque al montar /boot y el swapping, pero como el resto estaba sobre lvm sí me deja seguir la carga. Pero no me monta las particiones que menciono. La solución es sencilla, edito el /etc/fstab y cambio los dispositivos hda(que además no existen en mi caso) por sda (esto se puede hacer porque me deja seguir con el arranque).

Según he leido [[3] (http://www.nabble.com/Re:-Sarge+kernel-2.6+disco-SATA+CD-IDE-p1914167.html)] lo que tendría que haber hecho es instalar en modo experto el 2.6 y cargar el módulo ata_piix.

Instalación de debian con lvm

Instalación de debian con lvm


Introducción

Esto va a permitir poder asignar espacio que tengamos libre en algún disco, a particiones ya existentes y operativas.

Sólo detallo los pasos a seguir en la instalación de debian, para otros detalles consultar los enlaces de referencia al final.


Pasos en la Instalación

Una vez lleguemos al momento del particionado del disco. Crear la partición de boot (esta no puede ir sobre volúmenes lógicos) y debe ser primaria. Crear la partición de swapping. Y crear una tercera partición de tipo lvm.

A continuación pasar a la opción de configuración de volúmenes lógicos (lvm). Dentro de ésta crear un grupo de volúmenes lógicos(VG) sobre la partición física de tipo lvm que hemos creado antes (si tenemos varios discos el grupo podría coger varios discos). La opción es "modificar grupo de volúmenes lógicos". Dentro de este grupo de volúmenes lógicos realizar tantos volúmenes lógicos(LV) como se necesiten, cada volumen se identifica por un nombre y tiene un tamaño, el tamaño suma de todos los volúmenes lógicos puede ser inferior al del total de grupo (este espacio queda libre). La opción es "modificar volúmenes lógicos". Los volúmenes se crean uno tras otro y no se visualizan hasta que acabemos.

Ahora tenemos un VG y varios LV. Seleccionar cada uno de los LV e indicarles el sistema de archivos (ext3) y el punto de motanje que les corresponde. ¡OJO hay que pulsar sobre la entrada "hijo"!

Ejemplo:

Tengo un disco de 160 GB y creo:

  • Particiones:
    • partición primaria 300 MB , ext3 y /boot (hda1)
    • partición extendida(lógica) swapping 1 GB. (hda5)
    • partición extendida(lógica) lvm. (hda6)
  • Configuración LVM:
    • VG: VG-EGODINO (OJO este nombre se cambia automáticamente a VG--EGODINO) sobre /dev/hda6
      • LV: barra, 6 GB
      • LV: home, 30 GB
      • LV: opt, 10 GB
      • LV: usr, 40 GB
      • LV: var, 5 GB
  • Configuración tras asignar el sistema de archivo y punto de montaje a cada LV:
      • LV: barra, 6.4 GB, ext3, /
      • LV: home, 32.26 GB, ext3 /home
      • LV: opt, 10.7 GB, ext3 /opt
      • LV: usr, 42.9 GB, ext3 /usr
      • LV: var, 5.4 GB, ext3 /var


Referencias

[[1] (http://bulma.net/body.phtml?nIdNoticia=1859)] [[2] (http://linuca.org/body.phtml?nIdNoticia=326)]

viernes, marzo 03, 2006

Postgresql (8+) versus MySQL(5+)

Pues eso, en principio yo pensaba que postgresql era más profesional y mysql para andar por casa, pero parece que los últimos desarrollos de mysql han movido la balanza... A ver qué descubro...

PENTAHO (BI)

Bussiness Integillence Opensource (www.pentaho.org/)


Buscaba una herramientas para hacer reports es JAVA, y he dado con est eproyecto opensource que pinta de maravilla.
Se basa en otras herramientas opensource como Mondrian (OLAP), Jaws (workflow)...
Aún la estoy estudiando.

ECLIPSE IDE

OpenSource.
De por sí pone lo básico, todo lo demás lo hace a partir de plugins.
Lo veremos aqui para su uso con JAVA-J2EE.

--Supongo que se va a trabajar con el jdk 5 de sun, el jboss 4.0.4 (con el tomcat embebido 5.5) y el eclipse 3.1.2--
Plugins que conviene instalarse (todos opensource y free):

Instalación y configuración

Se trara de un entorno de desarrollo de propósito general. Mediante plugins se le añaden funcionalidades concretas para cada desarrollo. Pero ¡OJO! conviene instalar sólo los plugins necesarios así como tener abierto sólo los proyectos en los que se está trabajando, ya que sino el consumo de memoria por parte del entorno de eclipse se puede disparar.

El SDK de eclipse figura en el repositorio de debian. Lo podemos instalar desde aqui o podemos bajarlo de la web [[1] (http://www.eclipse.org)].En principio si se trata de la misma versión 3.1.2 sólo variarán las rutas en las que se despliega el paquete.

Hace falta tener instalado un JDK, para la versión de eclipse 3.1.2 hace falta una mayor de la 1.4. En mi caso voy a usar el JDK 5 de sun. Y hace falta indicarle que ejecute el entorno con esta máquina virtual en línea de comando usar -vm $JDK_HOME/jre/bin/java. .

Para eclipse existen un sinfín de paquetes cada uno con una serie de plugins presintalados/configurados, en este manual veremos cómo instalar el eclipse sin plugins y en sucesivos puntos veremos qué plugins instalar para desarrollar en JAVA.

En mi caso he instalado el eclipse bajándome el paquete de la web (tar.gz), lo descomprimo en el directorio $ECLIPSE_HOME=/usr/local/mis-app/eclipse.

Una vez descomprimido y antes de ejecutar nada, conviene cargar las variables de entorno JAVA_HOME=JDK_HOME (directorio en el que se ha instalado el JDK), así como el CLASSPATH que tiene que bajar hasta nivel de .jar o de directorio si es un .class. También conviene ejecutar el eclipse con un usuario que no sea el root, ya que se crean unos archivos en las rutas de eclipse y si luego intentamos ejecuat con otro usuario dará error.

Arrancamos eclipse $HOME_ECLIPSE/eclipse. Lo primero que se nos pregunta es por el directorio de trabajo, normalmente será home_usuario/workspace. Podemos usar distintos workspace y tener en cada uno una serie/tipo de proyectos. Se puede "conmutar" entre los distintos workspace al arrancar eclipse o a través de menú (Archivo).

Tras arrancar nos aparece la ayuda, podemos acceder posteriormente a través del menú de ayuda.

Para asegurarnos de que todo está bien inatalado y que el SDK de eclipse se ejecuta con una máquina virtual "buena", ir a ayuda->Software Update-> Manage Configuration y desplegando el árbol de la izquierda comprobar que no hay ningún símbolo de prohibido (conviene hacer esto cada vez que instalemos un plugin o cambiemos la configuración).

Aunque nos hayamos bajado la ultima versión para estar seguros de que tenemos la más reciente podemos en Help->Software Update->Find/Install comprobar que no hay una versión más reciente.

El entorno de desarrollo eclipse utiliza las llamadas "perspectivas" para facilitarnos el desarrollo. Dispone de perspectivas Java, Debug, Resource, CVS... Estas perspectivas sirven para visualizar en pantalla aquello que nos interesa en cada momento (en algún caso también ocurre que sólo con determinadas perspectivas tenemos dsponibles algunas opciones). Por ejemplo, al pasar a una perspectiva de "Debug" se visualizan en pantalla: El estado de los servidores sobre el que se está ejecuatndo el código (caso de existir), mensajes de error y trazas, varios de variables, puntos de ruptura... Mientras que en la perspectiva Java se visualizan fuentes de proyecto, tenemos acceso al classpath y utilidades para el dessarrollo/generación de código.

En el menú "windows->preferences" podemos configurar la mayoría de los parámetros del entorno y plugins que se instalen.

Acceder a windows->preferences. En el árbol de la izquierda pulsar sobre Java->Installed JREs. Verificar que el JDK por defecto sea el que hemos instalado, sino añadirlo. Modificar también en Java->Build Path el classpath. Añadir el rt.jar del SDK_HOME/jre/lib/rt.jar. Estas modificaciones se utilizan como configuración genérica para todos los proyecto. Aunque un proyecto puede tener su configuración concreta y distinta de la general. Modificar también en Java->compiler : el nivel de compilación 5.0.

Se puede hacer el cambio de perspectivas por menú windows->open pespective o por el acceso rápido situado en la parte superior derecha de la pantalla.



*[[Plugins]]:
:*[[Subversion]][[http://subclipse.tigris.org/update_1.0.x, Subversion download]]
:*[[Eclipse Modeling Framework (EMF,SDO,XSD)]]
:*[[Visual Editor (VE)]]
:*[[Graphical Editing Framework (GEF)]](draw2D)
:*[[web tools]]
:*[[JBOSS IDE, hibernate, jbmp, AOP]][[http://download.jboss.org/jbosside/updates/stable , Jboss IDE download]] (xdoclet)
:*[[Lomboz]][[http://lomboz.objectweb.org/overview.html, Lomboz download]]
:*[[Solar-eclipse]][[http://sourceforge.net/projects/solareclipse/]]
:*[[Struts-config]][[ http://www.improve-technologies.com/alpha/updates/site.xml]]=>Struts editor an WSDL viewer
:*[[Birt]]
:*[[TestNG]] [[http://beust.com/eclipse, TestNG download]]
:*[[Junit]]
:*[[Test and performaces tools platform (TPTP)]]
:*[[Standard Widget Toolkit (SWT)]]
:*[[BI Platform - pentaho]]

Si se quiere usar para PHP, se necesita el plugin:
:*[[PHPEclipse]]



*[[Crear un proyecto JAVA, classpath, compilación]]

*[[Trabajo con JBOSS]]

*[[Trabajo con Hibernate]]

*[[Crear un proyecto report-BIRT]]

viernes, enero 20, 2006

JAVA, TOMCAT, JBOSS

Referencias:
http://www.javahispano.org/articles.article.action?id=33
http://www.programacion.com/java/tutorial/jap_aplic_jboss/2/
http://java.sun.com/javaee/5/
http://sourceforge.net/projects/jboss
y mi propia esperiencia

¿Qué es JBOSS?
Es un proyecto de sw libre. Y actualmente es un servidor J2EE completo.

Yo parto de una PC con linux debian unstable instalado. En el que he instalado y configurado a mano (sin el apt) el JDK de sun (j2sdk1.4.2_05) y el tomcat 5.0.19 (no son los últimos pero voy a partir de ellos pq tengo aplicaciones corriendo allí) y tengo instalado el postgres 7.4

Decargo e instalo el JDBC para postgres http://jdbc.postgresql.org/download.html --> .jar adecuado
lo guardo en la carpeta $CATALINA_HOME/common/lib.

mi archivo de configuración que cargo al entrar /etc/egl:
echo "Cargando entorno (ELENA)." >&2
set -o vi
alias l="ls -lat"
alias psg="ps -afe | grep"
PATH=$PATH:"/usr/local/sbin:/usr/sbin:/sbin:/usr/local/j2sdk1.4.2_05/bin:/opt/informix/bin"
export PATH
export PRINTER="hp4050"
export ELENA="ELENA"
#export CVSROOT=:pserver:egodino@sinchan.alimarket.net:/opt/aliweb/cvs
export CVSROOT=:pserver:desa@sinchan.alimarket.es:/opt/aliweb/cvs
export JDK_HOME="/usr/local/j2sdk1.4.2_05/"
export JAVA_HOME="/usr/local/j2sdk1.4.2_05/"
export CLASSPATH=$CLASSPATH:"/usr/local/netbeans/jakarta-tomcat-5.0.19/common/lib/servlet-api.jar:/usr/local/netbeans/jakarta-tomcat-5.0.19/common/lib:/usr/local/j2sdk1.4.2_05/lib:/usr/local/j2sdk1.4.2_05/jre/lib/rt.jar"
export KNOWGATE_PROFILES=/opt/tomcat/webapps/hipergate-2.1.10/conf
export CATALINA_OPTS=-Dfile.encoding=UTF-8
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:""






miércoles, enero 18, 2006

Administración windows Server

Puertos abiertos:
netstat -anp tcp

Formularios para postgresql

¿Qué estoy buscando? Una herramienta para crear formularios para la BBDD postgresql.
Por ahora he mirado:

GBorg
Se instala bien y rápido el linux.
Los formularios tiene las opciones básicas, pero parece enfocado a un mantenimiento de tabla a tabla muy sencillo.


BOND

URL : http://www.treshna.com/bond/
Aplicación de escritorio.
Interacciona con glade, está en C.
En principio creo que la forma de utilizar esta herramienta es:
  1. Se crea la base de datos en postgres
  2. Con glade se crea el interfaz, llamando a los campos igual que en la base de datos
  3. Con la xsl de glade2bond.xsl se convierte el .glade a un xml válido para bond
  4. creas un archivo de configuración como los que viene de ejemplo, indicando tu bbdd y tu archivo .conf
  5. Ejecutas: ....../src/bondfrontend -c /ruta/archivo.conf
  6. Y voilá ya está tu aplicación
Sin embargo, el archivo .xml parece necesitar manipulaciones manuales, al menos si usas glade-2 y bond2.2.2.
Además me queda la duda: ¿Dónde se codifican las funciones que realizan "mis botones"? ¿cómo se relacionan realmente los campos del formularios con ls BBDD?

PEAR-PHP-DB_DataObject_FormBuilder
URL : http://pear.php.net
Aplicación entorno web.

JAVA -JDBC -Swing
Simplemente he probado a intentar hacer una interfaz gráfica, pero parece tener un bug
y casca con JFrame.

C++



Inicio

---Esta es la primera entrada de mi blog, primer blog---
El objeto de este blog es que me sirva para guardar mis propias notas y cosas que vaya aprendiendo.
Aunque su principal objetivo sea la autoayuda, espero que también pueda servir a otros.