gerard = odrarg

En nuestro mundo, sea lo que sea lo que la mente humana pueda crear puede ser reproducido y distribuido infinitamente sin ningun costo.

Subversion (SVNServer) en Windows XP

By odrarg




Subversion es un software de sistema de control de versiones diseñado específicamente para reemplazar al popular CVS, el cual posee varias deficiencias.

Es software libre bajo una licencia de tipo Apache/BSD y se le conoce también como svn por ser ese el nombre de la herramienta de línea de comandos. Una característica importante de Subversion es que, a diferencia de CVS, los archivos versionados no tienen cada uno un número de revisión independiente. En cambio, todo el repositorio tiene un único número de versión que identifica un estado común de todos los archivos del repositorio en cierto punto del tiempo.

Procedi a realizar un manual seguiendo los pasos de diferentes manuales que me encontre en las siguientes páginas y que son excelente ayuda.

1. Instalación de SVNServe en Windows XP

2. Subversive, cliente de Subversion para Eclipse

3. Instalación de Subversion (SVN) en Windows XP


Si alguien quiere el manual que hice gracias a la ayuda de los anteriores mencionados dejeme un comentario.

Consejo para combinar Array y ArrayList en Java

By odrarg

Los Array son caracteristicas propias del lenguaje java, la sintaxis puede ser de la siguiente manera:

int[] a = new int[100];

Sin embargo , los ArrayList es una clase de biblioteca, definida en el paquete java.util. Es un tipo "en un tamaño encaja todo" que alberga elementos de tipo Object. Por tanto, tendrá que realizar un moldeado siempre que quiera extraer un elemento de un array de listas.

Una ventaja muy importante es que los ArrayList permite la expansión y reducción de los mismos, algo que con los array no se puede.

ArrayList()
Construye un array de listas vacío

ArrayList(int capacidadInicial)
Construye un array de listas vacío con la capacidad especificada

Boolean add(Object obj)
Anade un elemento al final del array de listas

Int size
Devuelve un número de elementos almacenados actualmente en el array de listas

void ensureCapacity(int capacidad)
Garantiza que el array de listas tiene la capacidad de almacenar el número de elementos indicados sin necesidad de reubicar el array de almacenamiento interno

void trimTosize()
Reduce la capacidad de almacenamiento del array de listas para ajustarlo a su tamaño real

void set(int posicion, Object obj)
Coloca en valor en el array de listas en la posicion especificada, sobreescribiendo además el contenido previo de dicha posición.

Object get
Recupera el valor almacenado en una posicion correcta

Combinacion de Array y ArrayList

En ocasiones, se puede obtener lo mejor de ambos mundos (crecimiento flexible y acceso sencillo a los elementos) con el siguiente truco. Primero, construya un array de listas y añada los elmentos:

ArrayList list = new ArrayList();
while (....){
x = ....;
list.add(x);
}

Una vez concluido el proceso, use el método toArray para copiar los elementos a un array:

X[] a = new X[list.size()];
list.toArray(a);

Fuente: Java 2 Fundamentos, Cay S. Horstmann / Gary Cornell

Framework Acegi

By odrarg


Para implementar seguridad y autentificación en un sistema web encontre un framework interesante, llamado ACEGI.

ACEGI es un framework de seguridad open source que permite mantener la
lógica de negocio libre de código de seguridad. ACEGI proporciona cuatro
opciones principales de seguridad:

La liga del pdf que encontre para inciar en acegi, en español: tecnoblog.entel.es

La página oficial del proyecto es la siguiente Acegi

Log4j

By odrarg


Log4j

Es una librería de java con la que podemos escribir el log de nuestra aplicación, es decir, los errores, mensajes, avisos, etc.

Tiene muchas ventajas sobre System.out y Sytem.err.

  • Podemos organizar la salida de log en grupos, incluso un log por cada clase que es lo habitual.
  • Configuramos las salidas desde un fichero de configuración, sin necesidad de tocar el código. Este fichero nos permite:
    • Decidir qué salidas queremos o no mostrar, en función de qué clase procede la salida, de qué paquete o de la "gravedad" de la salida (error, aviso, información o información de debug).
    • Enviar la salida a otros sitios que no sean pantalla, por ejemplo, a través de un socket, base de datos, a un fichero, etc.

Con System.out y System.err sólo podemos tocar eso en el mismo código y, desde luego, no podemos con ellos enviar a sitios distintos de la pantalla.

Fuente: http://www.chuidiang.com

Ademas con log4j tambien podemos enviar via email cualquier error o excepción que ocurra en el sistema, algo muy interesante.

Bueno el archivo loggin.xml donde se coloca la configuración de los logs lo tuve que colocar en el directorio raiz de Tomcat.






300 Mexicanos

By odrarg

300 Mexicanos, esta chido

Crear proyecto web con maven y eclipse

By odrarg

El problema que se me presento a mi fue que al momento de importar el proyecto web a mi IDE eclipse éste no generaba el proyecto web sino un proyecto java el cual el tomcat no me reconocia para ejecutarlo via web.

Pasos a seguir para solucionarlo:

1. Nos posicionamos en la carpeta donde queremos crear el proyecto en mi caso fue:
C:\Archivos de programa\Apache Software Foundation\Apache Tomcat 6.0.14\webapps

2. Creamos el proyecto web con Maven
mvn archetype:create -DgroupId=com.empresa.ejemplos -DartifactId=SisWeb -DarchetypeArtifactId=maven-archetype-webapp

3. Creamos el paquete
mvn package

4. Instalamos
mvn install

5. Añadimos la variable del Repositorio local maven
mvnDeclipse.workspace= c:\eclipse\Workspace eclipse:add-maven-repo

6. En
el Eclipse comprobamos en Java\Build path\Classpath variables si se ha dado de alta correctamente el repositorio de Maven

7. Añadimos el modulo al eclipse de la siguiente manera (esto es por lo que batalle y por lo cual no generaba correctamente el proyecto al momento de importarlo)
mvn -Dwtpversion=1.5 eclipse:eclipse

La linea de codigo anterior lo encontre gracias a un manual de adictos al trabajo

8.Importamos el proyecto al eclipse
mediante el menu File\Import…\Existing proyect into Workspace...

8. Otra manera de importarlo es utilizando el plugin de Q4e

Sistemas Online para la Administracion Financiera Personal

By odrarg

Lista de Sistemas Online para la Administracion Financiera Personal:

1. http://xpenser.com/

2. https://secure.financify.com/

3. https://www.clearcheckbook.com/

4. http://www.gastus.com/

5. http://www.budgetpulse.com/

6. http://budget.10try.com/default.aspx?lng=En

Los voy a probar a ver que tal funcionan y a decidir cual de ellos voy a usar.

Desvelado

By odrarg

Bueno son las 1:37 am tengo los ojos rojos señales de desvelo y cansancio, se nos arruino el no tomar unas deliciosas cervezas en la casa para celebrar que no presente mi examen de ingles debido a que
como ya dije sigo en el trabajo,,mmm tanto pagar el ingles como para no pasar el nivel, bueno espero
que me den chance de presentarlo en los siguientes dias.

Lo bueno que ya llego el sagrado viernes es la unica consolación, bueno esperemos ir a algun lado
para desestresarnos por el paso a producción de hoy.

Bendito sea la programación en java, ja

Consejos para el diseño de clases en Java

By odrarg

1. Mantenga siempre los datos privados

Esto es lo primero: hacer cualquier otra cosa violaría la encapsulación. Puede que ocasionalmente tenga que escribir un método modificador o de acceso, pero es poco precio por mantener privados los campos instaciados. Amargas experiencias han demostrado que la forma en que los datos son representados puede cambiar, pero el modo en cómo se usan cambia con mucha frecuencia.
Cuando los datos se mantienen privados, los cambios en su interpretación no afectan al usuario de la clase, y los errores son mas fáciles de descubrir.

2. Inicialice siempre los datos

Java no le hará el trabajo de inicializar las variables locales, pero sí puede inicializar los campos
instanciados de los objetos. No cuente con los valores predeterminados y asigne explícitamente
los valores de las variables, bien suministrando un valor predeterminado o estableciendo valores
predeterminados en todos los constructores.

3. No utilice demasiados tipos básicos en una clase

La idea es sustituir los distintos usos de los tipos básicos relacionados con otras clases. Esto hace que sus clases sean más faciles de entender y modificar.

4. No todos los campos necesitan campos de acceso y modificación individuales.

Puede que tenga que establecer u obtener el salario de un empleado. Sin embargo, no tendrá que cambiar la fecha de contratación una vez que el objeto se ha construido. Y, con mucha frecuencia, los objetos tendrán campos instanciados que no deseará que otros usuarios puedan obtener o asignar, como, por ejemplo, un array de abraviaturas de estados en una clase Address.

5. Utilice un formato estándar para las definiciones de clase

Los contenidos de un clase siempre deben listarse de la siguiente forma:

  • características públicas
  • características de ámbito del paquete
  • características privadas
Dentro de cada sección, listamos:
  • métodos instanciados
  • métodos estáticos
  • campos instanciados
  • campos estaticos
Sin embargo, no existe un convenio universal sobre cuál es el mejor estilo.

6. Divida las clases con demasiadas responsabilidades

Este consejo es, desde luego, bastante vago: seguramente se habrá fijado en la palabra "demasiadas". Sin embargo, existe una forma obvia de dividir una clase complicada en dos que sean conceptualmente más sencillas, hágalo. Pero no se pase; diez clases, con un método cada una, es escesivo.

7. Haga los nombres de sus clases y métodos reflejen lo que hacen.

Al igual que las variables deben tener nombres consecuentes con su utilidad, las clases también deben tenerlos (la biblioteca estándar contiene algunos ejemplos dudosos, como la clase Date que describe instantes de tiempo). Para los métodos, siga el convenio estándar que dice que los métodos de acceso comienzan con un get en minúscula y los de modificación, con un set también en minúscula.

Fuente: Java 2 Fundamentos, Cay S. Horstmann / Gary Cornell

Arreglos en JavaScript

By odrarg

En javascript existe una clase array. Se puede crear un array de la siguiente manera:

var aValores = new Array();

Si sabemos con antelación cuantos elementos necesita la matriz, se puede pasar el tamaño como parametro:

var aValores = new Array(20);

Ejemplos de tratamientos de una matriz:

var aColores = new Array();
aColores[0] = "rojo";
aColores[1] = "azul";
aColores[2] = "verde";

Acordemonos que al igual como sucede en las cadenas, el primer elemento de una matriz se encuentra en la posición 0.

Además, si se conoce los valores que debe incluir la matriz se puede especificar como argumentos y crear un objeto array con una longitud igual al número de argumentos, como el siguiente ejemplo:

var aColores = new ("rojo", "azul", "verde");

Para poder sacar el valor de la posición 1 se puede hacer de la siguiente manera:

alert(aColores[1]); //obtenemos el valor "azul"

El tamaño completo de la matriz se puede determinar por medio de la propiedad length.

alert (aColores.length); //obtenemos el valor 3

Javascript tambien ofrece otro método el cual es join, cuyo unico objetivo es crear valores de cadena concatenados. El método join acepta un argumento, que es la cadena que va a utilizar entre los elementos. Veamos el siguiente ejemplo:

var aColores = ["rojo", "verde", "azul"];
alert (aColores.join(",")); //Obtenemos "rojo, verde, azul"
alert (aColores.join("-separador-")); //Obtenemos "rojo-separador-verde-separador-azul"
alert (aColores.join("][")); //Obtenemos "rojo][verde][azul"


Para convertir un arreglo en cadena se utilizan las siguientes instrucciones:

alert (aColores.toString()); //Obtenemos "rojo, azul, verde"

alert (aColores.valueOf()); //Obtenemos "rojo, azul, verde"

Seguramente se pregunte si del mismo modo que Array dispone de una forma de convertirse en cadena, String cuenta con una forma de convertirse en matriz. La respuesta es afirmativa. La clase string cuenta con el método split() este método acepta un único parámetro, la cadena que se considerará el separador de los elementos.

Si tenemos una cadena separada por comas, puede convertirla en un array de la siguiente forma:
var sColores = "verde";
var aColores = sColores.split(",");

Si especifica una cadena vacía como separador, el método split() devuelve una matriz en la que cada elementos es igual a un carácter de la cadena. Por ejemplo

var sColores = "verde";
var aColores = sColores.split(" ");
alert(aColores.toString()); //obtenemos "v,e,r,d,e"

En este caso, la cadena "verde" se transforma en una matriz de las cadenas "v,e,r,d,e" .

Ampliación del área de intercambio, Xmx512m -Xms512m

By odrarg

A veces cuando programamos en Java nos sale el error de java.lang.OutOfMemoryError: Java heap space. Esto se puede solucionar aumentandole el área de intercambio en Java.


Instrucciones para aumentar el área de intercambio en Java.

1. Entrar al menu de Windows / Preferences

2. Ir a las opciones de Configuración de Java y entrar a Installed JREs
3. Luego escogemos el Java que tenemos instalado y damos clic en Edit

4. Nos aparecera la siguiente pantalla y se tiene que colocar en Default VM Arguments
los siguientes parametros: -showversion -Xincgc -Xmx512m -Xms512m , como se muestra abajo


5. Queda solamente reinicar el tomcat y listo.

Recuva para recuperar archivos

By odrarg

Recuva es un programa que sirve para recuperar archivos que hemos eliminados y que no se encuentran ni en la papelera de reciclaje , voy a proceder a descargarlo por si algún dia lo necesito.




http://www.recuva.com/

Años dificiles, sube el maiz

By odrarg

Ahora resulta que los productos basicos estan aumentando como son el maiz, huevo entre otras cosas , y hoy leo que se hizo un pacto entre el presidente y empresarios para que el precio de la tortilla quede en 8.50 pesos , jajaja un pacto o convenio o como lo quieran llamar que barbaridad esto si es para risa, bueno al menos el pacto no fue del 100% de aumento, claro pero al que joden es a la clase popular y no a la clase que tiene mas la cual le vale un comino si sube un poco más.

Ojala esto se mejore por el bien de las clases populares, el gobierno debe apoyar más y con buenos programas al agricultor mexicano y NOOO al que ya tiene como por ejemplo a empresas que compran el producto para revenderlo.

Se percibe un ambiente dificil en el ambiente político. Seis años....

Diccionario Rapido en Linea

By odrarg

¿Qué es jijuju?

Es un atajo para consultar on line el Diccionario de la Real Academia Española a la velocidad de la luz (a veces incluso más deprisa).

¿Cómo funciona?

Escribe -por ejemplo- jijuju.org en tu navegadorEs muy sencillo. Simplemente escribe en la barra de direcciones de tu navegador favorito jijuju.com/palabra y serás redireccionado a la página pública del Diccionario. Por ejemplo, si quieres consultar el significado de la palabra ñandú, simplemente visita jijuju.com/ñandú. ¡No te olvides de las tildes y las eñes!.

Mas información en jijuju.com

Año 2007, Primer post

By odrarg

Empezamos un nuevo año mas, ahorita me encuentro meditando sobre las decisiones que he tomado en los ultimos meses, la verdad espero que este año sea mejor y no nada mas para mi, si no para todos en especial a mis seres queridos y amigos.

Estoy actualmente en la gran ciudad de monterrey trabajando de programador la verdad no me puedo quejar ya que he aprendido mucho desde que llegue, lo unico malo es que me siento un poco nostalgico en esta ciudad, extraño a la familia y amigos.. espero ir pronto a ver a mi familia, aunque actualmente estoy viviendo con mi amigo y pespa carlos mauricio , bueno cada quien en su cuarto jeje. Solo se que no voy a quedarme para siempre por aca y que tengo que regresar a mi tierra.

Manual de Mysql en español

By odrarg

Navegando en la página de mysql me encontre con documentación en español de esta base de datos.

Aqui dejo la dirección

Liga: dev.mysql.com/doc/refman/5.0/es/index.html


Navicat para Mysql

By odrarg

En el trabajo utilizamos Navicat como GUI para administrar bases de datos en MySql , en verdad es un excelente producto , yo he utilizado otros productos como por ejemplo mysql-front.

Creo que mysql es una buena base de dato, ademas es software libre , quisiera poder compararla con oracle por ejemplo a ver que tal. Algunos del trabajo dicen que fue una mala elección a ver escogido mysql para el proyecto que estamos realizando.

Liga: navicat

Libros gratis en Internet

By odrarg

Me pasarón esta lista de libros gratis en internet

Liga: www.mamiyami.com

RadioBlog

By odrarg

Radio Blog

Gracias a un amigo del trabajo supe de ésta página donde se puede escuchar musica en linea (radio en linea), la verdad ya me he encontrado con otras pero no me han gustados, pero esta esta muy bien, se las recomiendo si ya estan aburridos de sus canciones(mp3) que tienen en su pc .

Liga: www.radioblogclub.com

Open JDK

By odrarg


Hoy navegando en los diversos portales que visito me encuentro con la agradable noticia que sun a decidido liberar java, bien por sun. Con esto esperemos que le traiga muchos beneficios a este lenguaje.

https://openjdk.dev.java.net/