domingo, 18 de abril de 2010

CircuLoO



Este programa obtiene el perimetro y el area de un circulo con el radio que es dado por el usuario.
Math.PI*Math.Pow(r, 2); proporciona los datos (la formula) de como se obtendra el area
Circulo c =new Circulo(); indica que el programa pertenece a la clase c
{0:n}\n",c.Area (r)); indica que se dede aplicar la formula para obetener el area

Math: es una libreria
PI: es el valor de 3.1415....
Pow: indica que un numero se elevara al cuadrado (primero base, exponente)
Circulo c= new... : es el objeto
c: sin ella no se sabe a donde llegar


lunes, 1 de marzo de 2010

espacio de nombres Sintaxis

es una clasificacion especial utilizada para agrupar un conjunto de clases y estrusturs relacionadas asi como para aislar ese grupo de nombres en cnjunto de datos separados y distintos no se deben tener dos clases con el mismo nombre en un espacio de nombres y puede ser `predefinidos o definidos por el usuario

sintaxis

namespace NOMBREESPACIO {

// aqui van las clases de espacio de nombres
}

clase

unidad basica en la programacion orinentada a objetos. Todo programa en C shart se organiza en clases que encapsulan datos y comportamientos seguido del nombre class y el simbolo de inicio y fin de un bloque para delimitar la codificacion de sus miembros

sintaxis
class Nombre Clase
{

// aqui se codifican los miembros de una clase }

1)Write: escribe sin añadir el caracter del fin de línea a la cadena
2)Writeline:Si añade el caracter de fin de linea a la cadena, de modo de lo sig. que se escriba se colocara en la sig. linea
Ejemplos:


Console Write ("Hola");
Console Writeline ("Pepe");
Console Write("¿Como estàs, ");
Console Writeline ("bien?");

Ofreceria este resultado en consola

-HolaPepe
¿Como éstas, bien?

Metodos para leer datos

variable=Console.Read(). //lee un caracter
cadena=Console.ReadLine(). //lee una cadena

Variables y Constantes

variables-. Posicion con nombre en memoria donde se almacena un valor de un cierto tipo de datos y puede ser modificado. las variables pueden almacenar cadenas, numeros y estructuras. tiene un nombre (un identificador) que describen su proposito

constante-. Variable cuyo valor no puede ser modificado

Tipos da datos

enteros-. Problablemente el tipo de dato mas familiar identificado con la palabra reservada INT

caracteres-. cualquier elemento de un conjunto de caracteres o alfabeto letras digitos simbolos y signos de puntuacion

INT
STRING
SHORT
LONG
CHAR
FLOAT
DOUBLE
BOOL:

*FLOAT --> El tipo float se almacena como un número de 4 bytes de punto flotante y precisión simple. Representa un valor IEEE 754 de 32 bits de precisión simple.

El tipo float puede representar números tan grande como 1038 (positivo o negativo) con una exactitud de aproximadamente siete dígitos y tan pequeños como 10-44. El tipo float también puede representar NaN (No es un número), infinito positivo y negativo, y cero positivo y negativo.

Este tipo es útil para aplicaciones que necesiten números elevados pero no requieran una gran precisión. Si requiere números muy precisos, considere el uso del tipo de datos Decimal

*CHAR --> El tipo char se almacena como un carácter Unicode de 2 bytes.Representa cualquiera de los 65.536 caracteres Unicode.El tipo de datos de .NET Framework correspondiente es Char. Las propiedades y métodos del tipo de datos char son iguales que los deChar.

* BOOL --> El valor del tipo boolean (true o false) se establece según esté la palabra clave true o false asignada al tipo.El tipo de datos de .NET Framework correspondiente es System.Boolean. El tipo de datos Boolean es idéntico al tipo de datos boolean.Las propiedades y métodos del tipo de datos boolean son iguales que los de System.Boolean.JScript define también un objeto Boolean. El tipo de datos boolean interactúa con el objeto Boolean. Por tanto, un objeto Boolean puede llamar a los métodos y propiedades del tipo de datos boolean, y un tipo de datos boolean puede llamar a los métodos y propiedades del objeto Boolean. Para obtener información adicional, vea Boolean (Propiedades y métodos del objeto). Más aún, los objetos Boolean son aceptados por funciones que toman tipos de datos boolean y viceversa. Se debe utilizar el tipo de datosboolean en lugar del objeto Boolean en la mayoría de las circunstancias.

int --> El tipo de datos int se almacena como un entero de 4 bytes. Puede representar enteros en el intervalo de 2.147.483.648 negativo a 2.147.483.647 positivo, ambos inclusive.

El tipo de datos de .NET Framework correspondiente es Int32. Las propiedades y métodos del tipo de datos int son iguales que los deInt32.

STRING --> La longitud de un objeto String puede ir desde cero hasta, aproximadamente, dos mil millones de caracteres. Cada carácter es un valor Unicode de 16 bits.

El tipo de datos equivalente de .NET Framework es String.

SHORT --> El tipo de datos short se almacena como un entero de 2 bytes.

Puede representar enteros en el intervalo de 32.768 negativo a 32.767 positivo, ambos inclusive.

El tipo de datos de .NET Framework correspondiente es Int16. Las propiedades y los métodos del tipo de datos short son iguales que los de Int16.

LONG --> El tipo de datos long se almacena como un entero de 8 bytes.

El tipo long puede representar enteros en el intervalo aproximado de 1019 negativo a 1019.

El tipo de datos correspondiente de .NET Framework es Int64. Las propiedades y los métodos del tipo de datos long son iguales que los de Int64.

DOUBLE --> El tipo double se almacena como un número de 8 bytes de punto flotante y doble precisión. Representa un valor IEEE 754 de 64 bits de doble precisión.

El tipo double puede representar números tan grande como 10308 (positivo o negativo) con una exactitud de aproximadamente 15 dígitos y tan pequeños como 10-323. El tipo double también puede representar NaN (No es un número), infinito positivo y negativo, y cero positivo y negativo.

Este tipo es útil para aplicaciones que necesiten números elevados pero no requieran una gran precisión. Si requiere números muy precisos, considere el uso del tipo de datos Decimal.

El tipo de datos de .NET Framework correspondiente es Double. El tipo double es equivalente al tipo Number .

DECIMAL --> El tipo decimal se almacena como una parte entera de 12 bytes, un signo de 1 bit y un factor de escala.

Representa con exactitud números decimales muy extensos o precisos. Los números tan grandes como 1028 (positivo o negativo) y con hasta 28 dígitos significativos pueden almacenarse como un tipo decimal sin pérdida de precisión. Este tipo es muy útil para aplicaciones (como en contabilidad) donde se deben evitar errores de redondeo.

El tipo de datos de .NET Framework correspondiente es Decimal. Las propiedades y los métodos del tipo de datos decimal son iguales que los de Decimal.



jueves, 25 de febrero de 2010

SSh

SSH

es un programa que permite conectarse de manera segura a otra computadora on el objetivo de compartir recursos la sintaxis del comando es la siguiente:
ssh usuario @compuatora

----------------
L507:~ alumno$ ssh darwin@192.168.2.150
Password:
Last login: Thu Feb 25 07:53:44 2010
Alf-2:~ darwin$
-----------------
Obtener las Instrucciones

Alf-2:~ darwin$ cd desktop darwin
Alf-2:desktop darwin$ ls
instrucciones
Alf-2:desktop darwin$ cat instrucciones
Para ganar un punto extra, toque la puerta tres veces. Pero ¡corra!, que sólo el primero en hacerlo lo obtendrá
Alf-2:desktop darwin$
Alf-2:desktop darwin$

---------
cerrar un programa

Ps -U darwin
kill 619

-------
abrir aplicacion

Alf-2:desktop darwin$ open /applications/itunes.app
Alf-2:desktop darwin$

-------------
para que hable

Alf-2:desktop darwin$ say hello
Alf-2:desktop darwin$

SFTP

es un protocolo que sirve parea transferir archivos de manera segura.

L507:~ alumno$ sftp darwin@192.168.2.150
Connecting to 192.168.2.150...
Password:

copiar archivos de darwin a mi maquina

sftp> get

de mi maquina a la de darwin
put

-----------
Obtener instrucciones

L507:~ alumno$ cd desktop
L507:desktop alumno$ sftp darwin@192.168.2.150
Connecting to 192.168.2.150...
Password:
sftp> cd desktop
sftp> ls
instrucciones
sftp> get instruciones
Couldn't stat remote file: No such file or directory
File "/Users/darwin/Desktop/instruciones" not found.
sftp> get instrucciones
Fetching /Users/darwin/Desktop/instrucciones to instrucciones
sftp>



miércoles, 24 de febrero de 2010

Sentencias y bloques

La sentencia es la representacion de una acción, concecuencia de acciones ejecutables (operaciones)

Los bloques son grupos de sentencias delimitadas por llaves.

Método main

Es el punto de entrada al programa y la ejecución siempre inicia en el método main.
El método main debe ser:
* declarado static y en una clase coestructura, debe de regresar void o int, debe de ser escrito Main con mayúscula y puede no tener parámetros o recibir un arreglo de strings.


Elementos léxicos de un programa

1.- Comentarios --> anotaciones para documentar el programa. Existen dos formas de colocar comentarios:
// para un renglón
/*para más de un renglón*/

2.- Palabras reservadas --> palabras que tienen un determinado significado para el compilador.

3.- Identificadores --> nombres que los programadores dan a los diferentes elementos de un programa.
Deben de tener las siguientescaracterísticas:
* letras, caracteres, dígitos
* diferentes a las palabras reservadas
* no comenzar con dígitos
* sensible a mayúsculas y minúsculas
* debe contener nombres significativos

4.- Operadores y Punteros --> los operadores indican las operaciones y los punteros agrupan o separan. (ejemplo: { })

5.- Literales --> valores constantes escritos directamente en el programa.

6.- Directivas del preprocesador --> instrucciones al compilador. Comienzan con un signo de #

martes, 23 de febrero de 2010

C#

PROGRAMAR
Es hacer que la computadora obedesca una serie de instrucciones bien detalladas. Usando un lenguaje de programacion indicamos a la computadora que tiene que suceder en cada momento y como tiene que reaccionar ante la interaccion del usuario.
Se conoce como programación de computadoras a la implementación de un algoritmo en un determinado lenguaje de programación, conformando un programa.

PROGRAMA
Concepto desarrollado por Von Newmann en 1946. Se define como la union de una secuencia de instrucciones que una computadora puede interpretar y ejecutar y una o varias estructuras de datos que almacenan la informacion de datos independiente de las estructuras que dicha secuencia de instrucciones maneja.

Segùn Niklaus Wirth un programa esta formado por algoritmos y estructuras de datos.

LENGUAJE DE PROGRAMACION
Es la traduccion del lenguaje hombre al lenguaje màquina el cual tiene un numero limitado de datos y palabras. esta constituido por un conjunto de reglas:
1. sintacticas: especifican la formacion de instrucciones validas
2. semanticas: especifican el significado de estas instrucciones

Antecedentes de C#

La historia de C parte de un lenguaje anterior, el lenguaje B, escrito por Ken Thompson en 1970 con el objetivo de recodificar el sistema operativo UNIX, que hasta el momento se había programado en ensamblador. La pega del ensamblador era que lo ligaba a una serie de máquinas concretas, por lo que conseguir un lenguaje abstraído de cada máquina conseguiría una portabilidad del sistema muchísimo mayor. A su vez B fue inspirado en el BCPL de Martin Richard, diseñado tres años antes.

En 1972 es Dennis Ritchie (de los Laboratorios Bell de AT&T) quien diseña finalmente C a partir del B de Thompson, aportando un diseño de tipos y estructuras de datos que consiguen una claridad y eficacia en el lenguaje muy superior. Es un lenguaje que permite realizar una programación estructurada economizando las expresiones, con abundancia de operadores y tipos de datos (aunque los básicos sean pocos), codificando en alto y bajo nivel simultáneamente, reemplazando ventajosamente la programación en ensamblador y permitiendo una utilización natural de las funciones primitivas del sistema. Además, no está orientado a ningún área en especial y sobre todo consigue un código objeto altamente optimizado que repercute en que los programas son muy rápidos.

Durante muchos años no existen reglas estándar para el lenguaje, pero en 1983 se decide formar un comité con el objetivo de crear el estándar ANSI (Instituto Nacional Americano de Estándares). El proceso dura seis años y a principios de los 90 el estándar es reconocido por la ISO (Organización Internacional de Estándares) y comienza a comercializarse con el nombre ANSI C.

Paralelamente, en 1980 surge C++ de la mano de Bjarne Stroustrup (también de Laboratorios Bell de AT&T). Diseña este lenguaje con el objetivo de añadir a C nuevas características: clases y funciones virtuales (de SIMULA67), tipos genéricos y expresiones (de ADA), la posibilidad de declarar variables en cualquier punto del programa (de ALGOL68), y sobre todo, un auténtico motor de objetos con herencia múltiple que permite combinar la programación imperativa de C con la programación orientada a objetos. Estas nuevas características mantienen siempre la esencia del lenguaje C: otorgan el control absoluto de la aplicación al programador, consiguiendo una velocidad muy superior a la ofrecida por otros lenguajes.El siguiente hecho fundamental en la evolución de C++ es sin duda la incorporación de la librería STL años más tarde, obra de Alexander Stepanov y Adrew Koening. Esta librería de clases con contenedores y algoritmos genéricos proporciona a C++ una potencia única entre los lenguajes de alto nivel.

Debido al éxito del lenguaje, en 1990 se reúnen las organizaciones ANSI e ISO para definir un estándar que formalice el lenguaje. El proceso culmina en 1998 con la aprobación del ANSI C++.

La última variante que ha surgido de C es el moderno C#. En el año 2000, Microsoft presenta su plataforma .NET junto con un nuevo lenguaje, C# (diseñado por Anders Hejlsberg), que servirá de lenguaje principal de la plataforma. C# es un híbrido de C++ y Java que fusiona, principalmente, la capacidad de combinar operadores propia del primero (no incorpora la herencia múltiple) con la plena orientación a objetos del segundo. La orientación a objetos es tal que el propio programa está encapsulado en una clase.Actualmente C# se encuentra entre los 10 lenguajes más utilizados. A pesar de su corta historia, ha recibido la aprobación del estándar de dos organizaciones: en el 2001 se aprueba el ECMA y en el 2003 el ISO.

procesos

ps -U alumno: procesos que usuario alumno corren en ese momento

PID proces id numero que identifica a dicho proceso
kill 1453 (PID) de la calculadora y se cierra

L507:~ alumno$ open /applications/calculator.app
se abre la aplicacion de calculadora
SCRIPTS

Es una Secuencia de instrucciones almacenadas en un archivo que el sistema operativo puede ejecutar


Un Script puede contener:

1) comandos de Unix
2) variables, condicionales y cualquier otra herramienta de un lenguaje de programación

En cualquier caso un Script se puede escribir en cualquier editor de textos

------------------
L507:~ alumno$ nano

L507:~ alumno$ chmode 777 pepe
-bash: chmode: command not found
L507:~ alumno$ chmod 777 natalie
chmod: natalie: No such file or directory
L507:~ alumno$ chmod 777 pepe
L507:~ alumno$ ls -l


jueves, 18 de febrero de 2010

ACL

ACL (Lista de control de acceso)

Una Lista de Control de Acceso o ACL (del ingles, Access Control List) es un concepto de seguridad informatica usado para fomentar la separacion de privilegios. Es una forma de determinar lospermisos de acceso apropiados a un determinado objeto, dependiendo de ciertos aspectos del proceso que hace el pedido.

Las ACLs permiten controlar el flujo del tráfico en equipos de redes, tales como routers y switches. Su principal objetivo es filtrar tráfico, permitiendo o denegando el tráfico de red de acuerdo a alguna condición. Sin embargo, también tienen usos adicionales, como por ejemplo, distinguir "tráfico interesante" (tráfico suficientemente importante como para activar o mantener una conexión) en IDSN.

Proceso de configuración de ACL

El proceso de creación de una ACL se lleva a cabo creando la lista y posteriormente asociándola a una interfaz entrante o saliente.
Configuración de ACL estándar

Router(config)#access-list[1-99][permit|deny][dirección de origen][mascara comodín]

Donde:

1-99 Identifica el rango y la lista.

Permit|deny indica si esta entrada permitirá o bloqueará el tráfico a partir de la dirección especificada.

Dirección de origen identifica la dirección IP de origen.

Mascara comodín o wildcard identifica los bits del campo de la dirección que serán comprobados.

La mascara predeterminada es 0.0.0.0 (coincidencia de todos los bits).
Asociación de la lista a una interfaz

Router(config-if)#ip access-group[nº de lista de acceso][in|out]

Donde:

Número de lista de acceso indica el número de lista de acceso que será aplicada a esa interfaz.

In|out selecciona si la lista de acceso se aplicará como filtro de entrada o de salida.
Ejemplo de una ACL estándar denegando una red:

Router#configure terminal
Router(config)#access-list 10 deny 192.168.1.0 0.0.0.0
Router(config)#access-list 10 permit any
Router(config)#interface serial 0
Router(config-if)#ip access-group 10 in

Se ha denegado al host 192.168.1.0 y luego se ha permitido a cualquier origen,
Posteriormente se asocio la ACL a la interfaz Serial 0.
Configuración de ACL extendida

El proceso de configuración de una ACL IP extendida es el siguiente:

Router(config)#access-list[100-199][permit|deny][protocol][dirección de origen][mascara comodín][dirección de destino][mascara de destino][puerto][establisehed][log]
100-199 identifica el rango y número de lista
Permit|deny: indica si la entrada permitirá o bloqueara la dirección especificada.
Protocolo: como por ejemplo IP, TCP, UDP, ICMP

Dirección origen y destino: identifican direcciones IP de origen y destino.

Mascara wildcard origen y mascara destino: Son las mascaras comodín. Las 0 indican las posiciones que deben coincidir, y los 1 las “que no importan”.

Puerto:(opcional) puede ser por ejemplo: lt (menor que), gt (mayor que), eq (igual a), o neq (distinto que) y un número de puerto de protocolo correspondiente.

Establisehed: (opcional) Se usa solo para TCP de entrada. Esto permite que él rafico TCP pase si el paquete utiliza una conexión ya establecida (por ejemplo posee un conjunto de bits ACK)

Log: (opcional) Envía un mensaje de registro a la consola a un servidor syslog determinado.

Algunos de los números de puertos más conocidos:

20 Datos del protocolo FTP
21 FTP
23 Telnet
25 SMTP
69 TFTP
53 DNS

Asociación de la lista a una interfaz

Router(config-if)#ip access-group[nº de lista de acceso][in|out]

Donde:

Número de lista de acceso indica el número de lista de acceso que será aplicada a esa interfaz.

In|out selecciona si la lista de acceso se aplicará como filtro de entrada o de salida.

Ejemplo de una ACL Extendida denegando un host hacia el puerto 80 de una red:

Router(config)#access-list 120 deny tcp host 204.204.10.1 any eq 80
Router(config)#access-list 120 permit ip any any
Router(config)#interface serial 1
Router(config-if)#ip access-group 120 in

Se ha denegado al host 204.204.10.1, (identificándolo con la abreviatura “host”) hacia el puerto 80 de cualquier red de destino (usando el termino any). Posteriormente se permite todo trafico IP. Esta ACL se asocio a la interfaz Serial 1 como entrante.
Aplicación de una ACL a la linea de telnet

Para evitar intrusiones no deseadas en las conexiones de telnet se puede crear una
lista de acceso estándar y asociarla a la Line VTY. El proceso de creación se lleva a cabo como una ACL estándar denegando o permitiendo un origen hacia esa interfaz. El modo de asociar la ACL a la Línea de telnet es el siguiente: