domingo, 30 de octubre de 2011

OS Commads

description FreeBSD Linux Mac OS X Solaris Windows (cmd)
list directory ls ls ls ls dir
clear console clear clear clear clear cls

copy file(s) cp cp cp cp copy

move file(s) mv mv mv mv move

rename file(s) mv mv, rename mv mv ren, rename

delete file(s) rm rm rm rm del (erase)

delete directory rmdir rmdir rmdir rmdir rd (rmdir)

create directory mkdir mkdir mkdir mkdir md (mkdir)

change current directory cd cd cd cd cd (chdir)

run shell script with new shell sh file.sh sh file.sh sh file.sh sh file.sh cmd /c file.cmd

kill processes kill, killall killall, pkill, kill kill, killall kill, pkill taskkill

change process priority nice nice, chrt nice nice start /low, start /normal, start /high, start /realtime

change io priority ? ionice nice ? ?

create file system newfs mkfs mkfs newfs format

file system check and recovery fsck fsck fsck fsck chkdsk

create software raid atacontrol, gmirror, zfs create (mdadm—create) diskutil appleRAID metainit, zfs create diskpart (mirror only)

mount device mount mount mount, diskutil mount mount mountvol

unmount device umount umount umount, diskutil unmount(disk) umount mountvol /d

mount file as block device mdconfig + mount mount -o loop hdid lofiadm + mount ?

show network configuration ifconfig ip addr, ifconfig ifconfig ifconfig ipconfig

show network route route ip route route route route

trace network route traceroute traceroute traceroute traceroute tracert
trace network route with pings traceroute -I traceroute -I & mtr traceroute -I traceroute -I pathping

description FreeBSD Linux Mac OS X Solaris Windows (cmd)

Table from Wikipedia

sábado, 14 de mayo de 2011

Interfaces Graficas

Con la idea de simplificar el uso de los ordenadores para usuarios de todo tipo y no sólo para los expertos, se ha convertido en una práctica habitual utilizar metáforas visuales por medio de la llamada interfaz gráfica de usuario (GUI en inglés) para que el usuario interactúe y establezca un contacto más fácil e intuitivo con el ordenador.

java.AWT

Es un conjunto de herramientas muy simples con pocos componentes GUI, administradores de diseño, y eventos.
Esto se debe a Sun Microsystems decidió utilizar un mínimo común denominador (LCD) para el enfoque de AWT.
Como resultado de ello, y por desgracia, algunos de los componentes de uso común, tales como tablas, árboles, barras de progreso, y otros, no son compatibles. Para las aplicaciones que necesitan más tipos de componentes, es necesario crearlas desde cero. Esta es una gran carga.

AWT ofrece tres tipos de componentes principales:

a) Básicos: Componentes básicos en cualquier GUI.
Button
CheckBox
Container
Panel
Window
Frame
Label
List
TextComponent
MenuComponent

b) Layouts: Sirven para acomodar los componentes de la GUI.
FlowLayout
GridLayout
BorderLayout
CardLayout
GridBagLayout

c) Eventos: Otorgan funcionalidades a cada uno de los componentes de la GUI.
KeyEvent
ActionEvent
MouseEvent
TextEvent


javax.swing

El paquete Swing es parte de la JFC (Java Foundation Classes) en la plataforma Java. La JFC provee facilidades para ayudar a la gente a construir GUIs.

Las componentes Swing se identifican porque pertenecen al paquete javax.swing.

Swing existe desde la JDK 1.1 (como un agregado). Antes de la existencia de Swing, las interfaces gráficas con el usuario se realizaban a través de AWT (Abstract Window Toolkit), de quien Swing hereda todo el manejo de eventos. Usualmente, para toda componente AWT existe una componente Swing que la reemplaza, por ejemplo, la clase Button de AWT es reemplazada por la clase JButton de Swing (el nombre de todas las componentes Swing comienza con "J").

Las componentes de Swing utilizan la infraestructura de AWT, incluyendo el modelo de eventos AWT, el cual rige cómo una componente reacciona a eventos tales como, eventos de teclado, mouse, etc... Es por esto, que la mayoría de los programas Swing necesitan importar dos paquetes AWT: java.awt.* y java.awt.event.*.

Referencia:
http://www.hipertexto.info/documentos/interfaz.htm
http://www.roseindia.net/java/example/java/awt/
http://en.wikipedia.org/wiki/Swing_(Java)

La idea de la interfaz en mi proyecto y es simple, cada boton llama a una clase o metodo.

En la foto muestra el metodo de busqueda de socios (Por si no saben su numero o id) . Los botones de arriba son los metodos que puede hacer la clase.
[imagenes manipuladas con ayuda de paint, para el blog]  

Esta imagen muestra la opcion Alta que consta de un formulario.


[imagenes manipuladas con ayuda de paint, para el blog]


[imagenes obtenidas del Libro How to Program, Java de Deitel & Deitel 7° edicion] 
[http://www.speedyshare.com/files/28486006/How_to_java.pdf] 

Aun le falta GRACIAS BLOGGER :(

Saludos!..

jueves, 7 de abril de 2011

Semana 10 Programacion OO - Identificación de eventos, excepciones y errores propios

Un defecto de software, es el resultado de un fallo o deficiencia durante el proceso de creación de programas de ordenador o computadora (software). Dicho fallo puede presentarse en cualquiera de las etapas del ciclo de vida del software aunque los más evidentes se dan en la etapa de desarrollo y programación. Los errores pueden suceder en cualquier etapa de la creación de software.

Un Evento es una accion inciada por el usuario. Cada vez que se produce un evento sea crea un objeto.

Una excepción es un evento que ocurre durante la ejecución del programa que interrumpe el flujo normal de las sentencias.
El objeto generado “excepción” contiene información sobre el acontecimiento ocurrido y transmite esta información al método desde el que se ha generado la excepción. La ocurrencia de estas situaciones excepcionales provocará la terminación no controlada del programa o aplicación

Los errores por lo general, van más allá de nuestro alcance. Son situaciones criticas que no podemos manejar de forma habitual, incluso, no deberíamos intentar capturarlas y gestionarlas. Indican otro tipo de fallos de los cuales no podemos recuperarnos y solo queda finalizar la ejecución del programa.

Los errores más tipicos hacen referencia a fallos del sistema:
  • Memoria agotada.
  • Accesar a espacios ya reservados, por otros programas, en la memoria.
  • Sobrecarga del procesador.
  • Perdida de la conexión a base de datos, internet.
  • Problemas de hardware.
     

En mi Proyecto:

Eventos: Mi proyecto tendra varios ActionEvent ya que tendra un menu para accesar a cada cosa. Tambien creo que lo que es TextEvent servira para los registros de informacion (dar de alta, baja y buscar).

Excepciones: creo que se tendran que poner muchas, porque al ingresar una opcion no valida se desplegara un mensaje de opcion no valida y te dejara intentar nuevamente realizar una accion, es muy importante tener en mente que cada vez que se busque informacion en la base de datos pueda aver excepciones.

Errores: aun no he pensado que  clase de errores puedan ocurrir.



Fuentes:
http://es.wikipedia.org/wiki/Error_de_software
http://www.slideshare.net/sgvargas/manejo-de-eventos-en-java-presentation
http://www.mitecnologico.com/Main/ExcepcionesDefinicion

Saludos :]

jueves, 31 de marzo de 2011

Semana 9 Programacion OO - Patrones de Diseño - Clase

Un patrón es algún evento, suceso, objeto, en sí cualquier cosa que se repite en el tiempo.
Por ejemplo, en una fábrica se pueden producir diferentes tipos de artículos, por ejemplo, un jabón. El producto puede ir desde un jabón neutro, hasta uno aromatizado. Para todos se sigue un patrón el cual varía solamente al final, cuando se generan productos concretos desde un producto base. Entonces, se puede decir que el patrón es toda la línea de producción, ya que es un proceso recurrente que tiene como resultado uno o varios productos.

El mundo del software no es la excepción, existen problemas recurrentes a los cuales puede aplicarse un patrón, dichos patrones reciben el nombre de Patrón de Diseño.

"Los patrones de diseño son el esqueleto de las soluciones a problemas comunes en el desarrollo de software. Son una descripción de clases y objetos comunicándose entre sí adaptada para resolver un problema de diseño general en un contexto particular."

Los patrones nos brindan soluciones (probadas) a problemas en el desarrollo de software los cuales están sujetos a contextos similares. Por ejemplo, un software de llenado se formas, recibos, facturas, cheques, etcétera, todos pueden tener una finalidad diferente, pero todos tienen un patrón parecido para el llenado de información por lo que su codificación puede ser parecida o la misma; a todos los anteriores se les puede aplicar un patrón de diseño igual.

Existen tres clases de patrones de diseño:
  • De creación: conciernen al proceso de creación de objetos.
  • De estructura: tratan la composición de clases y/o objetos.
  • De comportamiento: caracterizan las formas en las que interactúan y reparten responsabilidades las distintas clases u objetos.

Algunas de las ventajas de usar patrones de diseño son:

Indican cómo resolver un problema particular utilizando un pequeño número de clases relacionadas de forma determinada, pero no indican cómo diseñar un sistema completo, sino sólo aspectos puntuales del mismo.
Facilitan la re utilización de las clases y del propio diseño.
La propia estructura del patrón es reutilizada cada vez que se aplica.

A pesar de ser muy útiles, rara vez se nota su efecto sobre el código y es casi imposible saber que patrón fue utilizado en su desarrollo. También suele ser necesario programas más clases que las necesarias y se produce una sobrecarga en el código

En mi proyecto 

Singleton 


El singleton es un patron muy comun ya que al momento de utilizar el programa solo estas realizando un proceso. 

Diagrama del Singleton 
Composite

Este patron me sirve porque funciona como un arbol entre los objetos.

Este patrón se usa cuando los objetos tienen cierta jerarquía en el código y cuando ciertas operaciones se realizan en uno o varios objetos.

un ejemplo del diagrama

Iterator

Bueno este patron se puede usar como un lista.. yo lo entiendo que lo puedo aplicar en la rentas porque el socio puede llevarse varias peliculas.



Bueno esta entrada fue muy complicada por tener que interpretar los patrones. Espero no averme equivocado y si aun puedo usar patrones seria de gran ayuda sus comentarios..

http://es.wikipedia.org/wiki/Patrón_de_diseño
http://es.wikipedia.org/wiki/Iterador_(patrón_de_diseño)
http://es.wikipedia.org/.../Composite_(patrón_de_diseño)
http://es.wikipedia.org/wiki/Singleton

Saludos :p

martes, 29 de marzo de 2011

Semana 8 Programacion OO - Demostraciones de Avance Parcial - Taller

Bueno esta entrada corresponde a la semana 8 del taller.

Esta entrada quedo algo muy simple ya que aun no estoy seguro como voy a manejar la base de datos y aun no he hecho el metodo mas importante que es el de la renta.

La siguiente imagen son los archivos que son parte del proyecto por ahora.



miércoles, 23 de marzo de 2011

jueves, 17 de marzo de 2011

Semana 6 Programacion OO - UML - Clase

Lenguaje Unificado de Modelado es el lenguaje de modelado de sistemas de software más conocido y utilizado en la actualidad; está respaldado por el OMG (Object Management Group). Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema. UML ofrece un estándar para describir un "plano" del sistema (modelo), incluyendo aspectos conceptuales tales como procesos de negocio y funciones del sistema, y aspectos concretos como expresiones de lenguajes de programación, esquemas de bases de datos y componentes reutilizables.

Los Diagramas de Estructura enfatizan en los elementos que deben existir en el sistema modelado:
  • Diagrama de clases
  • Diagrama de componentes
  • Diagrama de objetos
  • Diagrama de estructura compuesta (UML 2.0)
  • Diagrama de despliegue
  • Diagrama de paquetes

Los Diagramas de Comportamiento enfatizan en lo que debe suceder en el sistema modelado:
  • Diagrama de actividades
  • Diagrama de casos de uso
  • Diagrama de estados

Los Diagramas de Interacción son un subtipo de diagramas de comportamiento, que enfatiza sobre el flujo de control y de datos entre los elementos del sistema modelado:
  • Diagrama de secuencia
  • Diagrama de comunicación, que es una versión simplificada del Diagrama de colaboración (UML 1.x)
  • Diagrama de tiempos (UML 2.0)
  • Diagrama global de interacciones o Diagrama de vista de interacción (UML 2.0)
Fuente Wikipedia... http://es.wikipedia.org/wiki/Lenguaje_Unificado_de_Modelado

Diagrama de Clases

Este es un ejemplo de diagrama de clases basado en mi proyecto. En este diagrama se muestra como cada clase esta ligada y sus clases hijas.

Para generar esta grafica se importa el codigo al programa de UML en este caso utilize el umbrelo y arrastras las clases a la pantalla.




Diagrama de Secuencia

En este diagrama se muestra el recorrido de una renta.

Para realizar la renta el metodo busca si el socio existe y si tiene adeudos una vez que verifica si existe el socio, pasa a checar si existe la pelicula en el sistemas y si esta disponble una copia. 


Saludos ;] 

miércoles, 23 de febrero de 2011

jueves, 17 de febrero de 2011

Semana 4 Programacion OO - Documentación y herramientas de desarrollo - Taller

Bueno Esta entrada es para el taller.



Tag Descripción Uso
@author Nombre del desarrollador. nombre_autor
@deprecated Indica que el método o clase es antigua y que no se recomienda su uso porque posiblemente desaparecerá en versiones posteriores. descripción
@param Definición de un parámetro de un método, es requerido para todos los parámetros del método. nombre_parametro descripción
@return Informa de lo que devuelve el método, no se puede usar en constructores o métodos "void". descripción
@see Asocia con otro método o clase. referencia (#método(); clase#método(); paquete.clase; paquete.clase#método()).
@throws Excepción lanzada por el método nombre_clase descripción
@version Versión del método o clase. versión
Tabla de Wikipedia

En esta imagen podemos ver como compilar el codigo y como genera los archivos html.

Este es el link a mi servidor para ver mi Javadoc http://conglom-osoft.net/doc/                     

En esta imagen se muestra como se debe desplegar el html y como orgraniza la pagina por clases.


Saludos.. 

miércoles, 16 de febrero de 2011

Semana 4 Programacion OO - Documentación y herramientas de desarrollo

Hola... esta entrada es para la semana 4 de programacion orientada a objetos y hablaremos de documentacion en el diseño de Software y herramientas para su desarrollo...

Comunmente la documentacion de Softwares se realiza con archivos html y con txt dependiendo el metodo en el que se documente.

Es importante llevar la documentacion del codigo porque con esto podemos saber que cambios, como funciona y como esta formado el codigo, tambien sirve para cuando se esta trabajando en equipo o en grupo, es nesesario recordar que en documentacion de Javadoc solo va a mostrar la clases publicas, cuando usamos SVN cualquiera que puede entrar al svn  puede ver todo el codigo.

Existen varias formas para documentar el desarrollo de un Software.

Comunmente se utiliza lo que es un ChangeLog que cada cambio que se realize al codigo es añadido ahi con un comentario del resultado.

Otra forma de documentacion es el Subversion o SVN que esta es una pagina en la que se comparte el codigo a todos los que tengan acceso al svn y solo puede ser editado por los administradores o desarrolladores del proyecto, creo que este es un muy buen metodo porque en un svn puedes ver los cambios realizados, y tambien se puede comparar con el codigo anterior.
http://es.wikipedia.org/wiki/Subversion Para ver mas informacion.
http://svn.tech1.org/ Este Link puede servir como demo.



JavaDoc: sinceramente este metodo no lo conocia hasta la semana 4 y me parece un metodo muy simple, eficaz y gratuito. Este metodo explica claramente cada parte del codigo y sin la nesesidad de mostrarlo puedes ayudar a otras personas.

Para generar APIs con Javadoc han de usarse etiquetas (tag's) de HTML o ciertas palabras reservadas precedidas por el caracter "@".
Estas etiquetas se escriben al principio de cada clase, miembro o método, dependiendo de qué objeto se desee describir, mediante un comentario iniciado con "/**" y acabado con "*/".

Para compilar en Javadoc no es nesesario instalar algun paquete para Linux, solo es nesesario abrir la terminal y teclear javadoc *.java y la terminal mostrara la creacion de los archivos y si existe algun error.

http://es.wikipedia.org/wiki/Javadoc
http://www.oracle.com/technetwork/java/javase/documentation/index-137868.html 

Algo.java
package docdemo;

import javax.swing.JFrame;

/** Esta clase no tiene sentido sino simplemente 
 * demuestra la manera
 * en la cual ponemos comentarios que se usan para generar la
 * documentacion en HTML sobre las clases en Java. */
public class Algo extends JFrame implements Comparable {

    /** Este es el metodo que exige la interfaz Comparable. 
     * No esta
     * bien implementado, ya que es puramente un ejemplo de
     * documentacion. 
     * @param o El objeto contra el cual estamos comparando.
     * @return Negativo si esta instancia viene antes del 
     * parametro, cero si son iguales y positivo en otro 
     * caso.
     */
    public int compareTo(Object o) { 
 return -1; 
    }

    /** Este es un atributo para poner un numero. */
    protected static int numero;

}
Este es el ejemplo visto en clase. Aqui se muestra como funciona el codigo y que debe llevar.



Saludos ;]

jueves, 10 de febrero de 2011

Semana 3 Programacion OO Herencia y Polimorfismo - Taller

En esta entrada veremos parte de los codigos para el proyecto.

Este codigo es el que genera una ventana para el programa. Este es hijo de JFrame que es el generador de la ventana.

Console.java
package video;
import javax.swing.JFrame;
  
public class Console extends JFrame {
 
 public static void main(String[] args) {
  JFrame f = new JFrame();
  f.setSize(800, 600);
  f.setLocation(100, 100);
  f.setTitle("Ventana");
  f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  f.setVisible(true);
  return;
 }
}

Aqui podemos ver como la clase Renta es hija de Console... y como Renta hereda otras 2 clases que son Rentas y Entega aunque en esta entrada no queda claro pero si ya vieron la entrada de la clase se ve como las entradas tienen casi los mismo atributos.


Renta.java
package video;

public class Renta extends Console {
 private String titulo;
 private String socio;
 private String fechare;
 private String fechaen;
 private int adeudo;

 public void renta(){
 }

public class Rentas extends Renta {

}
public class Entrega extends Renta {

}

}

Este codigo es simplemente herencia del Console para generar la ventana

Socio.java
package video;
 
public class Socio extends Console {
 private String nombre;
 private String direccion;
 private int telefono;
 private int saldo;
 private String renta;
 
 public void alta(){
 }


}

Este codigo es simple porque solo Pelicula solo hereda 2 clases Dvd y Bluray. En este caso se utilizan los mismos atributos porque ambas clases hijas son lo mismo son una pelicula y la unica diferencia es el formato.


Pelicula.java
package video;

public class Pelicula extends Console {
 private String titulo;
 private String actores;
 private int copias;
 private String socio;
 private String genero;
 private String categoria;

 public void agregar(){
 }
public class Dvd extends Pelicula {

}

public class Bluray extends Pelicula {

}

}

Bueno despues de tanto tratar de enteder lo que es Herencia y Polimorfismo espero que este bien aplicado en mi proyecto seria importante que si tienen una sugerencia o encuentran un error en como estoy desarrollando el proyecto me gustaria saber cual es el problema...

Saludos :]

miércoles, 9 de febrero de 2011

Semana 3 Programacion OO - Herencia y Polimorfismo

Hola esta entrada corresponde a la semana 3 de la clase de programacion orientada a objetos en la cual se habla de lo que es herencia y polimorfismo.

En programación orientada a objetos la herencia es el mecanismo fundamental para implementar la reutilización y extensibilidad del software. Es la relación entre una clase general y otra clase más especifica.

Un ejemplo de herencia sería si declaramos una clase párrafo derivada de una clase texto, todos los métodos y variables asociadas con la clase texto, son automáticamente heredados por la subclase párrafo.

Y en polimorfismo se refiere a la capacidad para que varias clases derivadas de una antecesora utilicen un mismo método de forma diferente.



Referente a mi proyecto:
Bueno la clase ventana es simplemente lo grafico y esta hereda lo que son renta, pelicula y socio.  

En la clase Renta hereda a 2 clases rentas y entrega.





  1. rentas: esta clase es para administrar las rentas.
  2. entrega: y esta sirve para saber si la pelicula fue entregada a tiempo o fuera de tiempo. La unica diferencia en sus atributos es que una maneja adeudo.








Pelicula
|
-----------------------------------------------
|                                               |
DVD                                      Blu-ray
DVD y Blu-ray van a tener los mismos atributos.

Es probable que en la clase pelicula sus clases generen mas clases mostrando claramente lo que es la herencia tomando de ejemplo:
GENERO que este va a derivar terror, accion, drama, comedia e infantil.
CATEGORIA: si es estreno o catalogo (si es vieja).

Creo yo que conforme avanze el proyecto me dare cuenta si este ocupa mas clases y si estas clases son heredadas.

Espero que esta entrada cumpla con el objetivo de la semana si hay algo en lo que este mal por favor diganme todos nesesitmos una segunda opinion xD

Saludos.

miércoles, 2 de febrero de 2011

Semana 2 Programacion OO - Clases

Clases de objetos

  • Las clases de objetos representan conceptos o entidades significativos en un problema determinado.  
  • Una clase describe las características comunes de un conjunto de objetos, mediante dos elementos:
     
    • Atributos (o variables miembro, variables de clase). Describen el estado interno de cada objeto
       
    • Operaciones (o métodos, funciones miembro). Describen lo que se puede hacer con el objeto, los servicios que proporciona

Un Ejemplo para entender que es una Clase:
clase Coche: 4 ruedas, 1 volante, 5 asientos, acelerar, frenar, girar  

Como podemos ver, esta clase no sólo describe qué cosas posee un coche, sino que también describe qué acciones puede realizar un coche (acelerar, frenar y girar). Es decir, una clase define los atributos y las acciones (o métodos) que puede realizar un objeto de la clase.

Además podemos comprobar que un objeto puede estar formado por otros objetos, por ejemplo el coche posee 4 objetos de la clase Rueda.

Este es un pequeño ejemplo en JAVA.
//////CLASE
public class Cuenta
{
///// ATRIBUTOS (variables de instancia)
 private double balance = 0;
 private double limit;

//////OPERACIONES (metodos)
public void ingresar (double cantidad)
 {
    balance = balance + cantidad;
 }

public void retirar (double cantidad)
 {
balance = balance - cantidad;
 }
}

Aqui hay unos links para leer mas sobre Clases, metodos, objetos, etc...
http://elvex.ugr.es/decsai/java/pdf/3B-Clases.pdf
http://aprendeenlinea.udea.edu.co/lms/moodle/file.php/561/Poo_-_Fundamentos/presentacion_Java_1.pdf
*-----------------------------------------------------------------------------------------------------------------------------*

Respecto al Proyecto... las clases que usare son Socio, Peliculas y Rentas..

Clase              Atributos

Socio:       Nombre, Direccion, saldo (a favor o negativo).

Peliculas:  Titulo, genero, actores

Rentas:      Socio y peliculas


Socio.java
package video;
 
public class Socio {
 private String nombre;
 private String direccion;
 private int telefono;
 private int saldo;
 private String renta;
 
 public void alta(){
 }


}

Pelicula.java
package video;

public class Pelicula {
 private String titulo;
 private String actores;
 private int copias;
 private String socio;
 private String genero;
 private String categoria;

 public void agregar(){
 }


}

Renta.java
package video;

public class Renta {
 private String titulo;
 private String socio;
 private String fechare;
 private String fechaen;

 public void renta(){
 }


}

Saludos

lunes, 31 de enero de 2011

Semana 1 Programacion OO - Proyecto...

Hola.. pues subo esta entrada ya tarde... pero creo que era nesesaria para la documentacion del proyecto...

Despues de varios dias de pensar y ver posibles proyectos... a falta de ideas me decidi a hacer un programa que sirva para administrar un VideoClub.... tomando en cuenta como clases a socios, peliculas, etc.. en lo que estuve investigando me di cuenta de que este programa cumple con las expectativas del curso aunque sea algo simple...

Lo mas probable es que el proyecto lo desarrolle en JAVA aunque queria hacerlo con PHP y JavaScript en un servidor web...

Esta imagen la encontre en google... espero que al terminar el proyecto lusca mejor que la imagen..


Bueno esta es la entrada de la semana 1....
Saludos...