Unete al movimiento! - Una sola voz

Comunicado BPJ (Bloque de programadores Jodidos)

Unete al movimiento por la dignidad de los desarrolladores, coloca la imagen como fondo de pantalla en cualquier PC posible, si en tu oficina te lo prohiben, ya tienes una razón mas para unirte a nuestro movimiento.

Fondo Pantalla Normal "Vale Verga"

Para Widescreen "Vale Verga"

Tomado de Sinergia sin Control

Comentarios (3)

Campos autoincrementables

Siempre me ha llamado la atención de como se declaran los famosos campos auto incrementables en las distintas bases de datos por lo menos en las que he usado, y ahora mas ya que he estado usando intensamente JPA.



Acá pondré un resumen de como se declaran:

MySQL

campo [(longitud)] [not null] auto_increment primary key

Es necesario definir un campo autoincrementable de llave primaria en MySQL ya que este asi lo requiere de lo contrario no se puede declarar este tipo de campo.
Ejemplo:

create table prueba (
id int not null auto_increment primary key
)


PostgreSQL

campo serial [not null]

En PostgreSQL por el contrario que MySQL no requiere que un campo de tipo serial sea una llave primaria ejemplo:

create table prueba (
id serial not null
)

SQL Server / Sybase

En el caso de SQL Server / Sybase es mucho mas simple solo basta utilizar esta sintaxis:


campo int identity [(inicio,incremento)]

Ejemplo:

create table prueba (
id int identity
)

O sino si queremos que comience desde 3 y su incremento sea de dos en dos lo declaramos asi:

create table prueba (
id int identity(3,2)
)

Apache Derby

campo int [not null] generated always as identity [(start with [cantidad], increment by [cantidad])]

Derby es el gestor de base de datos de Apache, que viene incluido en el JDK 1.6, y lo podemos usar a traves de Netbeans, dos ejemplos de declaracion serian:

create table prueba (
id int not null generated always as identity
)

En el ejemplo anterior el campo id se generara como campo auto incrementable, con los valores por defecto que comienza a contar desde uno y su incremento es de uno en uno.

Ahora veamos este otro:

create table prueba (
id int not null generated always as identity (start with 5, increment by 2)
)

En la declaracion anterior estoy creando un campo de tipo autoincrementable que comience en cinco y su incremento sera de dos en dos.

Oracle

En el caso de Oracle es un poco mas trabajoso ya que no existe un tipo auto incrementable. Lo que se debe de hacer es primero crear un campo de tipo Number, luego crear una secuencia y por ultimo crear un trigger que realizara el autoincremento cada vez se haga un insert.

Ejemplo de todo esto seria:

create table prueba (
id number not null primary key,
descripcion varchar2(20)
)

Ya creada la tabla ahora crearemos una secuencia que comience desde uno y que se incremento en uno tambien.

create sequence seq_id_prueba
start with 1
increment by 1
nomaxvalue;

Hecha la secuencia debemos crear el trigger para que se utilice la secuencia para cada insert que le hagamos a la tabla.

create trigger trig_id_prueba
before insert on prueba
for each row
begin
select seq_id_prueba.nexval into :new.id from dual;

end;

Ahora cada vez que hagamos un insert podremos hacerlo asi:

insert into prueba(descripcion) values('Una fila');

Espero que les sirva este pequeno resumen ya que me costo un webo terminarlo aun cuando se ve sencillo ya que lo empece desde el domingo y hasta el dia de hoy logre terminarlo.

Comentarios (3)

Obteniendo una Conexion a partir de un EntityManager

Hace unos dias cuando estaba realizando unos reportes con la herramienta iReport, me tope con la necesidad que para poder invocar los reportes elaborados era necesario enviar una instancia de un objeto Connection para el metodo que genera el reporte.

Crear una conexion es sencillo pero yo no estaba manejando mi conexion de la manera tradicional pues estaba usando JPA que es la API de persistencia de datos de Java y esta es la que maneja las conexiones y la configuracion de la cadena de conexion se guardda en la unidad de persistencia que es nada mas y nada menos que un XML.

En un principio pense en acceder al XML directamente, pero como sabia que la conexion se maneja a traves del objeto EntityManager decidi averiguar como se hacia y pues la forma fue la siguiente asi de simple:

public Connection getConnection() {
EntityManagerFactory emf=Persistence.createEntityManagerFactory("NombreUnidadPersistencia");
EntityManager em=emf.createEntityManager();
return ((oracle.toplink.essentials.ejb.cmp3.EntityManager)em)
.getServerSession()
.getDefaultConnectionPool()
.acquireConnection()
.getConnection();
}


Espero que esto le sirva cuando se tenga la necesidad de obtener una instancia de la conexion que esta utilizando a travez de un EntityManager.

Comentarios (3)

Introduciendo al uso de persistencia de datos JPA

Como parte de mi promesa de volver a bloguear activamente, ahora voy a escribir sobre el uso de la API de persistencia de datos de Java comunmente llamado JPA.


Pero antes de empezar este post aun recuerdo cuando Rodrigo queria implementar esta historia en nuestro proyecto de Sistemas de informacion gerencial, definitivamente si a mi no me hubiera agarrado el berrinche hubiesemos avanzado bastante en poco tiempo, ya que perdi bastante tiempo queriendo escribir mis diske reglas del negocio, por eso en ese caso se aplico bien lo que dicen la gente adulta "uno de cipote es tonto".

Este post se centrara en utilizar JPA utilizando el IDE Netbeans 6.1, ya que es el que tengo mas tiempo utilizandolo, y en mi caso la base de datos de mi preferencia es PostgreSQL.

La base de datos que cree la llame simplemente "tienda" y su estructura esta compuesta por dos tablas:

CREATE TABLE tienda
(
id serial NOT NULL,
descripcion character varying(20),
CONSTRAINT pk_tienda PRIMARY KEY (id)
)

CREATE TABLE empleado
(
nick character varying(15) NOT NULL,
nombre character varying(30),
fk_tienda integer,
CONSTRAINT pk_empleado PRIMARY KEY (nick),
CONSTRAINT tienda_empleado FOREIGN KEY (fk_tienda)
REFERENCES tienda (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)

Luego de esto nos dirigimos a nuestro Netbeans y creamos un proyecto "Java Application", creamos el nombre que nos plazca en mi caso le coloque JPAejemplo, incluso deje que el Netbeans me creara una clase con el metodo main que es alli donde mostrare su uso.


Luego de esto nos vamos a la pestana de "servicios" y creamos una nueva conexion a una base de datos, lo bueno de usar Netbeans es que ya trae el driver para PostgreSQL o si se desea tambien MySQL, si se esta usando algun otro como SQL Server, Oracle, SyBase, etc., es necesario agregarlo.


Para crear la nueva conexion hacemos clic derecho sobre el nodo que dice "Databases" en la pestana de servicios, y elegir la opcion "New Connection" del menu emergente. Ingresamos los datos necesarios para pegarnos a nuestra base de datos y damos aceptar.


Ya teniendo nuestra conexion abierta procedemos a crear nuestros objetos de reglas del negocio persistentes.

Para ello damos clic derecho sobre el proyecto, elegir nuevo y dar clic en la opcion "Entity Classes from Database", aparecera un asistence para la creacion de nuestros objetos persistentes.

El primer paso es elegir la conexion que creamos, para luego escoger las tablas que estaran involucradas.

Luego dar siguiente el asistente nos preguntara el nombre que le daremos a nuestras clases asi como tambien el paquete donde las encapsularemos.


Notese hay una alerta la cual indica que no hemos creado una unidad de persistencia debemos crearla para poder proseguir, asi que hacemos clic en el boton "Create Persistence Unit".


En la ventana de dialogo por lo general no se toca simplemente lo dejamos como esta siempre recordando el nombre de la unidad de persistencia que en este caso se llamara "JPAejemploPU", que luego la utilizaremos pero eso sera solamente una vez.

Ya generada la unidad de persistencia precionaremos el boton finalizar. Si seguimos los pasos tal cual como lo he indicado debemos tener dos clases creadas una llamada "Empleado" y la otra "Tienda".

Ahora para poder continuar debemos tener claro el tipo de dato que son las llaves primarias de las dos tablas que creamos en el caso de la tabla Tienda su llave primaria es de tipo "Serial" es equivalente a la opcion autoincrement de MySQL o IDENTITY de SQL Server.

Teniendo claro eso definimos la forma en la clase Tienda de como se generara el codigo primario cuando se indique que queremos realizar por decirlo asi un insert.

En la seccion del campo Id de la clase Tienda debemos agregar lo siguiente:

GeneratedValue(strategy=GenerationType.IDENTITY)

Esto se coloca despues de la anotacion "Column" del campo Id, que debe quedar asi:

@Id
@Column(name = "id", nullable = false)
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;


No hay que olvidar agregar los respectivos import.

import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;


Con esto que se le agrego a la clase indicamos la forma de generar el valor para el campo Id en cada insert.

Ese tipo de generacion aplica para base de datos MySQL, SQL Server, Sybase, PostgreSQL (cuando trata de campos de tipo serial).

Pero cuando usamos secuencias se debe utilizar otro tipo de generacion de valores, como es el caso para Oracle, que en otro post lo explicare con mas detalle.

Pero bien no basta con solo agregar eso a la clase, tambien es necesario crear nuestras "Consultas nombradas", por esta caracteristica es que me gusto bastante esto del JPA, ya que es bastante, bastante flexible.

Creamos una simple para mostrar todos los empleados, ahora procedemos a editar la clase Empleado y en la anotacion "NamedQueries" agregamos la nuestra tan simple como esto:

@NamedQuery(name="Empleado.verTodos", query="SELECT e FROM Empleado e")

Que al final debe quedar asi:

@NamedQueries({
@NamedQuery(name="Empleado.verTodos", query="SELECT e FROM Empleado e"),
@NamedQuery(name = "Tienda.findById", query = "SELECT t FROM Tienda t WHERE t.id = :id"), @NamedQuery(name = "Tienda.findByDescripcion", query = "SELECT t FROM Tienda t WHERE t.descripcion = :descripcion")})

Ya hecho todo esto, pasamos a la parte mas interesante, que es utilizar nuestras clases ya configuradas, para ello creamos dos clases mas para la manipulacion de las ya antes mencionadas.

Una la llamaremos ControlEmpleado.java y la otra ControlTienda.java

El objetivo de estas sera mostrar consultar, agregar, eliminar o modificar un objeto en especifico.

Pero para no hacer mas largo este post de lo que ya esta por que me estoy cagando del sueno solo mostrare como mostrar los resultados de una consulta, y realizar un insert.

Pues bien para realizar un insert nos vamos a la clase ControlTienda y agregamos el siguiente metodo:

public void insertPrueba() {
EntityManagerFactory emf=Persistence.createEntityManagerFactory("JPAejemploPU");
EntityManager em=emf.createEntityManager();

Tienda nueva = new Tienda();
nueva.setDescripcion("Otra tienda");

em.getTransaction().begin();
em.persist(nueva);
em.getTransaction().commit();
}


Eso es todo, lo mas correcto hubiera sido que el metodo recibiera una instancia de tienda y luego por medio de JPA se realizara el insert, pero el punto era mostrar como se hace.

Ahora como mostramos los registros? pues es tambien muy sencillo, y eso haciendo uso de nuestra consulta nombrada.

Creamos otro metodo en la clase ControlEmpleado, que devuelva un arreglo de Empleados.

public Empleado[] getEmpleados() {
EntityManagerFactory emf=Persistence.createEntityManagerFactory("JPAejemploPU");
EntityManager em=emf.createEntityManager();

Query q = em.createNamedQuery("Empleado.verTodos");

return (Empleado[]) q.getResultList.toArray(new Empleado[0]);
}

Ya con esto desde el metodo main hacemos un recorrido por los registros que nos devuelva nuestro metodo.

Empleado[] empleados = new ControlEmpleado().getEmpleados();

for (int i= 0 ;i
System.out.println(empleados[i].getNombre()+ " trabajo en "+empleados[i].getTienda().getDescripcion());



Y eso es todo, espero poder aportar mas con lo que he quedado pendiente en este post, saludos marachitos.

Comentarios (4)

De vuelta a la actividad

En el momento antes de escribir esta entrada me estaba fijando que la ultima vez que postee fue en Julio, definitivamente el blog estaba abandonado pero no por que yo lo quisiese asi.

En este ano ha tenido muchos cambios en mi vida, he conocido y aprendido de varias personas que siento que puedo considerarlos como amigos.

Ahorita estoy abusando de escribir esta entrada por que faltan diez minutos para la media noche y debo irme a dormir, ya que debo de estar a las ocho de la manana en Santa Elena, y viajar todos los dias desde Santa Ana, hasta el quinto culo requiere de disciplina.

Pero bien el motivo de este post es para dar senales de vida al mundo, ya que tengo muchas cosas que postear y compartir para mis amigos, asi que mi actividad bloguera va a aumentar asi como cuando estaba en el apogeo el blog.

Comentarios (7)

KDE4, Ubuntu y Debian

Despues de estar ausente de la posteada, estoy aprovechando que en el banco han bajado el filtro web por el momento.

Pues bien el motivo del presente post es para escribir un poco sobre KDE4, ya que lo tengo emulado con VMWare, lo he probado con Debian y Ubuntu.

En el caso de Debian me segui la guia para instalarlo haciendo mezcla de paquetes de la rama unstable y experimental, con esta guía uno puede obtener la versión 4.1 del entorno de escritorio, pero aun así lo deje a medio instalar por que no podia resolver unas dependencias, pero igual esta bonito.

"Ubuntu Hardy 8.04 con kde4 en mi maquina virtual"

Pero como mi idea era tener el entorno de escritorio completo para poder hacerme un criterio verdadero, entonces me decidi bajarme Kubuntu Hardy 8.04 con Kde4, y la verdad es que esta bastante amigable pues lo emule con 256 MB de RAM y se comporto como la última versión de (GNOME 2.22) definitivamente es mas rápido que GNOME lo malo es que en Ubuntu esta la versión 4.0.

Pero lo mas destacable para mi en KDE4 es el nuevo explorador de archivos llamado Dolphin, la versión que trae Ubuntu de este explorador de archivos es la 1.0.2 y carece de poder usar pestañas, caracteristica que en Debian con la versió de 4.1 de KDE ya esta, le hice un upgrade pero aún asi todavia no esta incluido la cuestión de las pestañas.

"Captura de pantalla de GNOME 3.0"

En fin es de esperar que según como leí en el blog de the beastieux GNOME con su versión 2.30 será la punta de lanza para la versión 3.0, se mira bastante prometedor tambien, ya que en cuanto a avances significativos GNOME no se ha visto mucho.

En fin antes de concluir este post ya que no se hasta cuando volvere a escribir un saludo a toda la mara que lee a este su humilde servidor.

Comentarios (5)

Saludando...

Despues de casi cuatro semanas de no bloguear, hasta ahorita tengo por lo menos media hora, ya que no estoy con los paranoicos de la seguridad de la gente del grupo Citi.

En fin, ahorita la experiencia laboral me ha servido de mucho, he hecho nuevas amistades y a la vez me estoy abriendo brechas para la demas majada que yo se que tienen capacidad. Es mas la mara "loco linux", como muchos mages nos suelen llamar a las personas que optamos por opciones libres, son muy comunes dentro de la empresa y eso me da gusto.


Ojala pueda postear mas seguido, sin tener que yo estar siempre atento que alguien me este controlando. Otra cosa mas estoy esperando con ansias que algun culero de la mara me llame para ir a joder un rato, el hecho que ahora pase ocupado no quiere decir que me he desvinculado de la mara.

Saludos a toda la perrada de la blogosfera.

Comentarios (8)

Publicar un proyecto Web con Netbeans 6.1

A medida que he estado avanzando en mi estudio y descubrimiento de las tecnologias de J2EE, tenia la necesidad de como poder publicar mi proyecto realizado para la Web hecho con JSP, en un servidor de producción Tomcat.


Antes que nada debemos saber como crear un proyecto Web en Netbeans 6.1, debo disculparme por poner capturas de pantalla de windows de mi Netbeans como como tambien lo habia publicado anteriormente no dispongo de una maquina con GNU/Linux en el trabajo.

¿Como crearlo?

1.- Crear un nuevo proyecto Web


2.- Configurar el proyecto Web es necesario que en el campo "Project Name" el nombre que le asignemos sera el necesario para acceder a traves de http://ip-dominio/NombreProyecto. En mi caso yo he hecho un proyecto de un simple Hola Mundo.


3.- Ya elaborado todo el proyecto es necesario limpiar y Compilar el proyecto, esto es para que todas las clases que hayamos generado las limpie compilaciones anteriores y las vuelva a generar y tambien genera un archivo WAR que es por decirlo asi el ejecutable de todo el proyecto y se genera en la carpeta dist.

4.- Para que podamos poner ya en marcha el proyecto necesitamos copiar ese archivo compilado en la carpeta "webapps" del servidor Tomcat, ya hecho esto solo basta con reiniciar el servicio y accedemos de la forma anteriomente dicha http://ip-dominio/NombreProyecto y eso es todo.

Una de las cosas que me ha gustado de esto es como yo siendo phpero y viniendo de ese mundo me parecio muy bueno tener una estructura de proyecto ordenada, ya que con php uno no tiene eso y por lo general todo el mundo inventa para tener ordenado su proyecto, aunque ya tenga su metodo es mucho mejor manejar un standar.

Comentarios (4)

Firefox 3 y sus sorpresas

Despues de estar traveseando el Firefox 3, luego de descargarmelo me di cuenta de una cosa muy extraña pero graciosa que posee firefox.

Pues cuando en la barra de direcciones se escribe about:robots, aparecio lo siguiente


¿Cual sera el plan que tendran preparado?

Comentarios (2)

Trivialidades en Java

Como siempre lo he dicho conforme uno va desarrollandose en Swing de Java hay cosas que difieren un poco a como me tenia acostumbrado los Windows Forms de .NET, y es que no encontraba la manera de darle el foco a un control especifico dentro de un JFrame o JDialog.

La manera es la siguiente

Control.requestFocus();

Cualquiera diria que pierdo el tiempo posteando esto, pero me sucedio lo mismo cuando estaba usando Gtk# que para darle el foco a un Control era:

Control.GrabFocus();

¿Alguien podria imaginarse que era de esa manera cuando en Windows Forms solo bastaba con llamar al metodo Focus() de un control?

Comentarios (0)

Día de descarga de Firefox 3

Si quieres hacer historia, pues este es el día de ayudar a la gente de Mozilla pues hoy se han liberan la version 3.0 del navegador libre mas popular pues me refiero al Mozilla Firefox.

Mozilla se ha propuesto que hoy se haga historia tratando de asi lograr el record del software mas descargado hasta el momento.

"Bonito Logo de Firefox"

Si quieres ayudar nada mas basta con que te dirijas a la seccion de descarga del proyecto, yo por mi parte ya coopere y en este momento estoy blogueando con el mencionado navegador, falta ver que tal funcionara.

Comentarios (1)opiniones, ¿cual es la tuya?

Eliminar un elemento de un XML con JDOM

Para intentar disipar la crisis que tengo en este momento me voy a poner a escribir sobre como eliminar un elemento de un XML en Java.

Es una cosa muy sencilla nada mas se debe utilizar el metodo remove de un objeto.

Supongamos que tenemos la siguiente estructura XML


Bien ya teniendo la estructura de ese archivo XML hacemos uso de JDOM, y creamos el siguiente codigo que eliminara a una persona con un Id introducido desde linea de comando.


Siempre hay que recordar que para que los cambios se hagan efectivos se debe guardar el archivo como lo explicado en la entrada de como trabajar XML con JDOM.

Comentarios (3)

Daniel Alberto sin GNU/Linux

Ya pasaron dos dias desde que empece a laburar, aun no tengo ningun proyecto asignado.

Mientras para esperar me tienen leyendo sobre RUP, que es como una nueva metodologia sobre el ciclo de vida de sistemas, ya termine de leer todas las cosas, que no es del otro mundo, ya revise mi correo, ya me aburri de estar chateando, no encuentro que bloguear, ya avance en otros proyectitos que tenia de la U y otras hierbas y hasta ahorita me fluyo un poco que escribir.

Pero lo mas critico de todo es que no dispongo de un GNU/Linux para mi uso y aun no tengo confianza para pedir permiso de instalarmelo en la maquina que por el momento tengo asignada, para de verdad estar entretenido y aprendiendo, ya que me habia quedado a medias como integrar Apache2 con Tomcat6 en Debian Lenny.

Por lo menos aun sigo usando Netbeans, pero de las otras cosas que me preocupa es cuando me ubiquen para el banco no voy a tener internet ni mucho menos voy a poder usar mi sistema operativo de preferencia y para amolar creo que hasta me van a obligar a usar Eclipse.

Comentarios (1)opiniones, ¿cual es la tuya?

Suma y resta de Fechas en Java

Aprovechando que tengo un poquito de tiempo libre, ya que nomas estoy en capacitacion, hace poco me tope con la necesidad de tener que sumar o restar fechas en Java.

La forma para hacerlo es usar la clase Calendar especificamente su metodo "add" del paquete java.util.* ¿Como se usa?

Pues bien los paramentros que recibe son dos:
  1. Campo de Tipo Integer.
  2. Valor de tipo Integer.
Un ejemplo para sumar una fecha seria:

Calendar hoy=Calengar.getInstance();
hoy.add(Calendar.DATE, 2);


Para restar el ejemplo seria:

Calendar hoy=Calengar.getInstance();
hoy.add(Calendar.DATE, -2);


Adjunto una imagen con un ejemplo poquito mas elaborado para su facil comprensión

"Ejemplo en Java para la suma y resta de fos fechas"

Comentarios (0)

Al fin laburando

Hasta que al fin despues de buscar, y buscar he encontrado trabajo. Ahora soy programador en Java para SVSOFT.

Bien ahora que soy parte de la vida productiva del país posteare menos, menos de lo que ya lo hacia, y ojala no me domine el cansancio de la viajadera diaria de Santa Ana a Sivar y siempre poder seguir ayudandole a mi equipo de desarrollo de la materia de SIG en la UES.

Por el momento creo que voy a dejar de lado mi sistema operativo favorito, conforme vaya agarrando mas confianza en el trabajo voy a ver si le instalo mi querido Debian GNU/Linux a alguna maquina para mi uso personal.

Comentarios (0)

Instalar Tomcat 6 en Debian GNU/Linux

Muchos se preguntaran que demonios es Tomcat?, pues se trata de un proyecto de Apache que sirve de Container para poder servir paginas JSP y Servlets.

De entre otras características de Tomcat es que es multiplataforma, es decir, se puede usar tanto en Windows como en GNU/Linux.

Existe una guía para instalar la versión 5.5 en la pagina de debian.org.sv pero en nuestro caso nos centraremos en la versión 6 ya que no se encuentra en los repositorios oficiales aun.
Pues bien como se instala?

Se asume que se ha instalado el JDK ya sea de cualquiera de las formas que se han posteado en este blog:
Debemos de ir a la sección de descarga de la versión 6 de Tomcat.

Ya descargado basta con descomprimir el archivo.

$ tar -xvf apache-tomcat-6.0.16.tar.gz
$ mv apache-tomcat-6.0.16 tomcat6
# mv tomcat6 /opt


Luego de esto debemos registrar las variables $JAVA_HOME, $JRE_HOME y $CATALINA_HOME.

Esto se hace editando el archivo bash.bashrc que se encuentra en etc, asumiendo también que la ruta de mi jdk se encuentra en /usr/java/jdk1.6

# nano /etc/bash.bashrc

Escribimos lo siguiente al final del archivo.

export JAVA_HOME=/usr/java/jdk1.6
export CATALINA_HOME=/opt/tomcat6
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$PATH

Guardamos el archivo, cerramos la tty que estemos usando y abrimos otra para que ya podamos usar las variables registradas, para corroborar que ya esta todo bien debemos de ejecutar lo siguiente:

$ java -version

Deberá aparecer algo similar a esto.

java version "1.6.0_06"
Java(TM) SE Runtime Environment (build 1.6.0_06-b02)
Java HotSpot(TM) Client VM (build 10.0-b22, mixed mode, sharing)

Ahora por ultimo creamos un enlace simbólico de catalina.sh hacia init.d para poder iniciar Tomcat como servicio del sistema.

# ln -s /opt/tomcat6/bin/catalina.sh /etc/init.d/tomcat6

E iniciamos el servicio

# /etc/init.d/tomcat6 start

Al escribir http://localhost:8080 en nuestro navegador debera aparecer algo similar a esto:


Y eso es todo lo necesario para tener instalado el Container.

Comentarios (0)

Semana de Tecnología Informática


Es de mi agrado informar con que los compañeros de la cátedra de Sistemas Digitales están organizando la "Semana de Tecnología Informática", a realizarse en nuestra facultad.

Para mayor información pueden visitar la pagina del evento.

http://www.rastageek.com/sti/

Comentarios (0)

Instalar JDK directamente desde un Binario

Ya había mencionado con anterioridad las formas mas fáciles de instalar el JDK (Java Developer Kit) en una distribución Debian GNU/Linux o basadas en esta como lo es Ubuntu.

Ya sea:
Esta vez explicare como hacerlo instalándolo directamente desde el archivo binario que se puede descargar por el enlace:

http://java.sun.com/javase/downloads/index.jsp


Yo me había descargado el JDK 1.6 update 6, hasta el momento que he estoy escribiendo este post ya esta la update 10, este método que voy a explicar aplica incluso hasta para la versión 1.5 del JDK.

1# Descomprimir y ubicar en un directorio el JDK.

$ chmod +x jdk-6u10-linux-i586.bin
# mv jdk1.6.0_10 jdk1.6
# mkdir /usr/java
# mv jdk1.6 /usr/java

2# Registrar el JDK instalado en las variables del sistema, editar el archivo bash.bashrc ubicado en etc.

# nano /etc/bash.bashrc

Se debe agregar estas lineas al final del archivo.

export JAVA_HOME=/usr/java/jdk1.6
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$PATH

Ya hecho esto guardamos y cerramos la consola activa y volvemos a ingresar a otra para ver los cambios.

Para comprobar que todo ha salido bien escribimos lo siguiente en consola

$ java -version

Deberá aparecer algo similar a esto

java version "1.6.0_10"
Java(TM) SE Runtime Environment (build 1.6.0_10-b05)
Java HotSpot(TM) Client VM (build 10.0-b22, mixed mode, sharing)

Esta mini guía prácticamente se puede usar para cualquier distribución GNU/Linux.

Comentarios (0)

Publicidad en MSN Messenger

Para mi sorpresa hoy recibí un correo de Pamela, lo que mas me sorprendió fue que no se tratara de una cadena jaja.

Pues el motivo de su mensaje fue de una publicidad muy curiosa que le apareció en su Messenger.

"Publicidad en el MSN Messenger"

Pamela con sus propias palabras (con todo y errores de ortografía jaja) ella explica que es la fundación Favaloro, y algún que otro comentario mas.

Jeje tenía que mandarte esto para que veas la propaganda que invierte Microsoft y con nombre mando al frente a su contrincante jajajaja…

La fundación Favaloro es una entidad para gente que sufre del corazón, como ataques cardiacos y eso, además el Doc. Favaloro fue el que invento lo que se llama Bypass.


A mi nada mas me resta de darle su sentido pésame a la fundación Favaloro, a ver que tan de cierto le resultara usar la plataforma que ha escogido.

Comentarios (3)

Comunidad OpenSuSE de El Salvador

Ya hace algunos días me llego a mi correo un mensaje de Roberto Alas, anunciando el nacimiento del sitio Web de la comunidad OpenSuSE de El Salvador.

En lo particular me parece muy buena la iniciativa de los compas ya que en la variedad esta el gusto y también se arma un mejor criterio sobre gustos y ventajas de las diferentes distribuciones de GNU/Linux ya sea para el ámbito laboral como asi también para estudio.

Ahora la comunidad OpenSuSE de El Salvador se une también a las otras existentes en El Salvador.

Comentarios (0)

Sistema Académico elaborado con la tecnología Mono

Hace poco escuche la frase "ahora me propondré desarrollar solo con software libre", pero para mi sorpresa muchos ya lo están haciendo y es el caso de Tany Villalba que le había estado siguiendo la pista en la lista de correo de Mono Hispano y para mis sorpresa ha desarrollado un sistema académico con la tecnología del proyecto Mono.

El sistema según como se puede apreciar en la pagina del proyecto consiste en:
  • Catalogod de Cursos
  • Curriculas
  • Control de Notas
  • Convalidaciones
  • Matriculas
  • Control de Creditaje
  • Prerequisitos en Materias
  • Control de Pagos de pensiones (tentativo - no se sabe si se implementara, esta por ahora incluido en la base de datos)
Se puede apreciar capturas de pantalla en su Ubuntu a la vez un poco de código fuente, que fue hecho totalmente con Monodevelop.

También en la pagina del proyecto ha puesto a la disposición de la comunidad el código fuente como también de la base de datos.

Incito a la comunidad a tener iniciativas de desarrollar software con tecnologías libres tanto usando Mono como Java así como lo ha hecho Tany.

Comentarios (1)opiniones, ¿cual es la tuya?

Usando JDOM en Java para usar XML

Antes había explicado como usar XML con php5, asi como también sus ventajas.


Como bien se lo he dicho desde hace ratos a la mara JAVA PAGA!!, aprendan a usar Java, pero como siempre son necios de seguir con esa su mierda del .NET, nomas se los aceptaría si usaran Mono pero ni modo.

Pues para no perdernos y seguir el hilo usaremos la estructura del archivo XML de la entrada anteriormente mencionada.

"Estructura archivo XML"

Bien ya teniendo la estructura XML nada mas falta como saber para poder hacer uso de este mediante Java, la forma mas facil es usar JDOM, es una libreria para interacturar con XML con DOM.

Asumiendo que usamos Netbeans, hay descargar el JAR de JDOM y agregar esta libreria a la de nuestro proyecto.

Ya esto esto nada mas debemos agregar los paquetes respectivos para poder usar los Objetos de Clase, adjunto la imagen de la estructura de la clase JavaXML como imagen ya que en Blogger es muy difícil compartir código de forma cómoda.

"Diseño de la clase JavaXML con sus métodos"

No creo que sea necesaria una explicación profunda acerca de los metodos ya que cualquiera que maneje mas o menos DOM, no le sera dificultoso.

Método Leer: Este es el encargado de recorrer toda la estructura del archivo XML y mostrar una salida en pantalla.

"Método Leer()"

Método CrearXML: En el metodo Leer si en dado caso no existiese un archivo XML se crea enviando como parametro un arreglo del Objeto persona.

"Método CrearXML()"

Objeto Persona: Esta clase hereda las características de la clase Element para así de forma mas fácil poder introducir elementos al nuevo documento XML.

"Clase Persona"

Método Guardar: Esta función recibe como parámetro un objeto Document, hay que recordar que la estructura XML nada mas esta cargada en memoria y es necesario guardarlo en un archivo plano de texto, y esto se logra usando este método.

"Método Guardar()"

Espero que les sea de utilidad este pequeño post, ya que gracias a todo esto antes mencionado me es posible generarle ingresos a la gente del billar y de mama Chave.

Comentarios (5)