miércoles, 8 de agosto de 2007

Día Martes en el Intercon2007

Hoy he podido participar del tutorial "Redes Convergentes inalámbricas: Voice + Data", ha estado muy bueno aunque no fué práctico, pero el conocer la diferentes opciones que existen para configurar redes inalámbricas y aspectos como seguridad, administración, funcionamiento de voz sobre IP y muchas otras cosas más, han sido muy iznteresante.













(pronto las pondré algunas de estas fotos en un blog adecuado para esto).

martes, 31 de julio de 2007

Aprendiendo Ensamblador con Software Libre

Actualmente estoy intentando usar Software Libre en todas mis clases, como un intento de avanzar con la revolución que apoyamos los amantes del SL, aquí les va mi experiencia con ensamblador:

Este semestre me tocó ser profesor de la unidad de Ensamblador en la Universidad. Al principio pensaba usar MacroAssembler de Micro$oft para mis clases, como el resto de mis compañaros, pero al final después de buscar un ensamblador libre me topé con NASM (NetWide Assembler) en la version 0.98.39, realmente fue una buena opción, me sentí más cómodo que trabajando con el MASM aunque por su puesto encontré algunas complicaciones como en las macros y procedimientos, pero después de todo nada se compara con la 'LIBERTAD', es decir sentir que estás haciendo las cosas legalmente.

Al inicio pensé que sólo era bueno para Linux, pero después de 'surfear' y de 'dolores de muela' al fín pude empezar a trabajar en DOS.
Trabajamos en DOS por ahora, pero aspiro al siguiente módulo (si Dios quiere) hacerlo ya sobre Linux.
Otra de las gratas sorpresas que tuve fue cuando encontré que Jeff Duntemanns usaba también en su libro "Assembly Language Step by Step" las herramientas que yo había seleccionado.


Aquí lo que usé para mis clases:

NASMIDE 1.8: Un ide para NASM en DOS, parecido a mi recordado Turbo Pascal.
http://home.comcast.net/~fbkotler/nasmide.zip

NASM 0.98.39: El Ensamblador más comodo para programar en Linux y DOS
http://sourceforge.net/projects/nasm

ALINK 1.6: Un linker o enlazador libre
http://alink.sourceforge.net

viernes, 20 de julio de 2007

Ultima Tarea

PRIMERA PARTE: Cree un programa llamado 'Keboard' en donde realice lo siguiente:
  • Cree un objeto Scanner llamado 'scn' utilizando la sentencia:
    Scanner scn = new Scanner(System.in);
  • Añada además a esta sentencia un comentario que indique que constructor de la clase Scanner está utilizando. y Desde donde se van a leer los tokens.
  • Cree una para almacenar objetos de tipo 'Person' (la clase creada en la tarea anterior)
  • Dentro de un ciclo repetitivo pida al usuario que ingrese cada uno de los datos necesarios para construir un objeto 'Person' y luego añadirlo a su lista.
  • El ciclo repetivo debería ejecutarse hasta que el usuario decida no ingreasr más datos.
  • Finalmente presente su lista con todos sus elementos.
    OJO: La ejecución del programa debe realizarla desde una
    consola de DOS (sí­mbolo del sistema) para que sea satisfactoria y no desde eclipse.



SEGUNDA PARTE: Cree en su clase 'ListaEmpleados' un método llamado grabarDatos(): void que realice lo siguiente:
  • Cree un flujo (stream) de SALIDA hacia cada uno de los archivos de texto: 'asalariados.txt', 'porhoras.txt' o 'porcomision.txt'
  • Busque las Clases de Stream adecuadas para escribir datos de manera sencilla a través de los métodos conocidos print, println o printf y construya los objetos necesarios para conectar a los stream que referencian a los archivos de texto mensionados.
  • Dentro de un ciclo repetitivo escriba los valores de todas las propidades (estado) de todos los objetos 'Empleado' contenidos en el atributo 'lista' de su clase ListaEmpleados.
    OJO: Antes de escribir los datos necesita usar el operador 'instanceof' (Que debe ser investigado por Ud) para determinar a que archivo de enviar los datos.
  • Tenga en cuenta los separadores entre datos que debe usar al escribir en los archivos, para una adecuada lectura posterior.
  • Pruebe el funcionamiento del método desde una clase cualquiera.
*** SUERTE EN EL EXAMEN CHICOS ***
/\/\;/

miércoles, 18 de julio de 2007

SOLUCION A PROBLEMAS DE LA TAREA

Animo chicos, tranquilos que tiene solución, aquí van algunas pautas:

FileNotFoundException: El (los) archivo(s) .TXT tienen
que ubicarlos en la carpeta de su proyecto, no en 'src' ni en 'bin'.

Ojo con el . (punto decimal) en los 'Doubles', depende de la configuración de su Window$
si tienen problemas tienen que usar la , (coma).

Cada archivo de texto tiene que tener ubicados los datos correactamente
para que el scanner los pueda tomar sin problemas.

PDTA: Espero que tengan listas las exposiciones para maniana.

lunes, 16 de julio de 2007

Uso de la Clase Scanner

PRIMERO: Cree un proyecto denominado ArchivosConScanner, en el mismo codifique las siguientes clases:

/******************************
* File Name: TestFile.java *
* Class Name: TestFile *
* (c) Milton Labanda *
*******************************/
import java.util.Scanner;
import java.io.File;

/**
* Clase que lee datos del Archivo de texto 'persons.txt'
* y crea objetos 'Person' para luego presentarlos como tal
*/

public class TestFiles{
public static void main(String [] args){
File file = new File("persons.txt");
Scanner scanner = null;
try{
scanner = new Scanner(file);
}catch(java.io.FileNotFoundException ex){
System.out.printf("%s",ex);
}
while (scanner.hasNext()){
String id = scanner.next();
String name = scanner.next();
Integer age = scanner.nextInt();
Double weight = scanner.nextDouble();
Person person = new Person(id,name,age,weight);
System.out.printf("%s",person);

}
System.out.printf("%n");
}
}

/********************************
* File Name: Person.java *
* Class Name: Person *
* (c) Milton Labanda *
*********************************/

/**
* Encapsula los datos de una Persona
*/
class Person{
private String id; //codigo
private String name; //nombre
private Integer age; //edad
private Double weight; //peso


public Person(){
}

public Person(String id, String name, Integer age, Double weight){
this.id = id;
this.name = name;
this.age = age;
this.weight = weight;
}

public String toString(){
return String.format(" ID\t: %10s %n" +
"name\t: %10s %n" +
"age\t: %10d %n" +
"weight\t: %10.3f" +
"%n%n",id,name,age,weight);
}
}

SEGUNDO: Cree el archivo de texto 'persons.txt' en el mismo directorio que se creó 'TestFiles.java'
con el siguiente contenido (utilice eclipse o bloc de notas):

1224 Juan 25 60.79
1456 Sara 23 65.789
3456 Carlos 12 50.8

NOTA: los datos están separados con tabuladores


TERCERO: Ejecute la clase TestFiles y Conteste las siguientes preguntas :
1. Que constructor de Scanner está usando?
2. Por qué se maneja la excepción FileNotFoundException?
3. Qué hace el método nextInt() y nextDouble()?
4. Cual és el resultado si los datos de las personas en el
archivo están en una sola línea?
5. Qué sucede si los datos de una persona en el archivo
no se separan con tabulador o espacio?

T A R E A:
Tomando como referencia el ejemplo desarrollado cree un método denominado 'cargarDatos():void' en
su clase 'ListaEmpleados' del proyecto 'Rol de Pagos', el cuál permita leer datos desde un 3 archivos diferentes dnominados 'asalariados.txt', 'porhoras.txt' y 'porcomision.txt', a partir de los cuales cree los objetos 'Empleado' paral luego agregarlos a 'lista'.

NOTA: Cualquier duda o pregunta puede realizarla a través de un comentario sobre esta entrada.*/

martes, 10 de abril de 2007

Al fin llega Debian/GNU Linux 4.0


Después de una larga espera y como regalo de Pascua de Resurrección
a parecido mi tan esperada version de Debian/GNU Linux 4.0.
Según Distrowatch.com el día del lanzamiento fue el Domingo de
Pascua 04 de abril del 2007. Estoy a la espera de descargalo y probarlo
pero pienso que va a estar buenísimo.
Si quieres descargarlo
En: http://www.us.debian.org/releases/stable/debian-installer/ encontrarás muchísimos formatos a tu gusto (CD, DVD, imagenes para flash memories, floppy, etc). Disfrútalo

martes, 27 de marzo de 2007

Claves Foraneas en Mysql

Sabias que para que tengan efecto las relaciones entre tablas en mysql las tablas tienen
que ser tipo innodb las columnas de la clave foránea tienen que estar indexadas. Aquí un ejemplo:

mysql >create table persona (id int auto_increment primary key...,
nombres varchar(30), direccion_id int) type = InnoDB;
mysql> create table direcciones(id int auto_increment primary key
..., sector varchar (20), calles varchar(40),
numero_casa varchar(4)) type = InnoDB;

Se requiere primero:

mysql> create index idx_direccion on persona(direccion_id);

Para luego enlazar las claves:

mysql> alter table persona
add constraint fk_direccion_id
foreign key (direccion_id) references direcciones(id;

viernes, 23 de marzo de 2007

Ordenación de 7 Nuevos Sacerdotes en Loja

Hace más o menos 6 años que el Seminario Mayor Diocesano "Reina del Cisne" cambiaba de administración y con ello empezaban las controversias y la persecusión, los malos entendidos y la difamación. Pero hoy luego un gran trabajo por amor a Jesucristo los frutos de estas persecusiones y de los sufrimientos, ya no se pueden esconder: este Lunes 26 de marzo por la mañana se ordenarán 7 nuevos presbíteros, 6 de ellos pertenecientes a las Comunidades Neocatecumenales de Loja. Los católicos en general de la diócesis estamos por demás contentos y agradecidos con el Dios.