Un poco de todo lo relacionado al area de la informatica... programacion, ocio, configuraciones, en fin herramientas que pueden ser utiles para un estudiante de ingenieria en ciencias y sistemas.

sábado, 27 de julio de 2013

On 19:51 by Unknown in ,    No comments
Resumen acerca de lo que es el modelo osi y sus tres primeras capas:
- capa física
- capa de enlace de datos
- capa de red




Descarga:

martes, 23 de julio de 2013

On 21:27 by Unknown in , ,    No comments
Introducción a los conceptos principales de lo que es la programación orientada a objetos y una breve descripción de los cuatro principales elementos que la componen.


Descarga:

http://www.mediafire.com/?xbyffr69ayet12d

lunes, 22 de julio de 2013

On 16:22 by Unknown in ,    No comments
Documento que contiene los principales conceptos de lo que es un analizador léxico y así como una
explicación de lo que son las Expresiones Regulares y los Autómatas Finitos que son los reconocedores de gramáticas independientes de contexto y que ya nos van adentrando en la teoría necesaria para posteriormente poder construir un analizador léxico y finalmente programarlo.


Descarga:

http://www.mediafire.com/?4c24cpzdcngow9v

martes, 16 de julio de 2013

On 16:32 by Unknown in , ,    No comments
El siguiente documento contiene los conceptos principales que se deben tener presentes y conocer sobre el tema de compiladores, un tema bastante amplio y complejo de las ciencias de la computación y que se necesita bastante paciencia y estudio para entenderlo.

El documento contiene los temas:

1. Lenguaje (¿que es?, tipos, etc)
2. Compilador y sus fases
3. Gramática y jerarquía de Chomsky

Esta es la primera parte nada mas, los siguientes temas tendrán temas mas específicos sobre los compiladores.



Descarga:

http://www.mediafire.com/?wqu3kw7oi1u26ld

lunes, 15 de julio de 2013

On 21:24 by Unknown in , ,    No comments
Me voy a dedicar crear este tipo de entradas que me van a servir como recordatorio y para tener presentes los conceptos principales de los cursos que he visto en la carrera así como ejemplos prácticos que por tanto contenido no me acuerdo muy bien o el peor de los casos (el mas común) se me olvida, y pues puede servir como guía para alguien que quiera sintetizar el contenido de una forma mas simple (eso espero xD). El primer documento es sobre conceptos básicos de programación, la principal teoría así de forma general y que ayuda a comprender mejor el tema.


Descarga en:

http://www.mediafire.com/?qxupepuo52cllrg

martes, 4 de junio de 2013

On 22:13 by Unknown in , ,    No comments


Las tablas pivote sirven para presentar los datos de una forma mas estructurada, reportes, mostrar totales etc, a modo de darle una mejor vista a los datos y que sean mas entendibles al mismo tiempo.

Esto se puede realizar con sql básico que es aceptado por cualquier DBMS y también haciendo uso de la función "pivot" que no pertenece al estándar sql pero que es aceptada por algunos dbms.

Oracle implemento el uso de esta función a partir de la versión 11 (según leí) por lo que en versiones anteriores no es reconocida, se usaba la función DECODE que trabaja de forma similar.

Los siguientes ejemplos están realizados en oracle 11.2 XE versión para windows y prácticamente sirven para mostrar como pasar una consulta pivote realizada con sql básico a una realizada con la función pivot, la cual nos simplifica el código de la consulta.

Se tiene la siguiente consulta con tabla pivote realizada con sql básico





Para realizar esta misma consulta con la función pivot se realiza lo siguiente :

1. Seleccionamos los campos que necesitamos en este caso el año y el mes donde cada año representa una fila y los meses las columnas.

Select * (Select extract(year from fecha_inventario) as anio,extract(month from fecha_inventario) as mes From equipos S )

2. Escribir la instrucción pivot a continuación de la consulta anterior

3. Hacer la función de agregación que necesitamos en este caso “count” y realizar el FOR y el IN

Pivot ( Count (mes) For mes in (1 as enero,2 as febrero,3 as marzo,4 as abril,5 as mayo,6 as junio,7 as julio,8 as agosto,9 as septiembre,10 as octubre,11 as noviembre,12 as diciembre) ) order by anio

Count (mes) para contar el numero de equipos por cada mes y luego el FOR<campo>  en este caso también el mes porque en el es donde vamos a buscar los valores que necesitamos y por ultimo IN en donde se le da un listado de valores a buscar.

Como se puede observar al encontrar un “1” se devolverá “enero” y así sucesivamente.

3. Con la consulta anterior todo bien, y hay muchos ejemplos así en Internet pero el problema es que nos falta la columna “TOTAL” que tiene la consulta mostrada al inicio. Para esto en vez de tener select * al principio de la consulta agregamos lo siguiente

Select anio,enero,febrero,marzo,abril,mayo,junio,julio,agosto,septiembre,octubre,noviembre,diciembre, enero+febrero+marzo+abril+mayo+junio+julio+agosto+septiembre+octubre+noviembre+diciembre as total from…. 

 Donde sumamos todos los campos para obtener el total y así tener otra columna al final.

La consulta nos queda entonces:





y con esto ya esta realizada la consulta con la función PIVOT.

Nota: al incluir la clausula IN solamente se puede indicar un conjunto de valores, es decir un listado previamente conocido de valores ya que si queremos agregar las columnas de forma dinámica haciendo un SELECT IN nos dará un error ya que la función pivot no permite trabajar de esta manera.

Por ultimo un ejemplo de una consulta que agrega totales verticales y lo unico que se hace es un UNION ALL.


lunes, 3 de junio de 2013

On 15:56 by Unknown in , , ,    2 comments
La siguiente mini aplicación muestra como conectarse a una base de datos ingresando de forma manual los parámetros de conexión (bd, puerto, etc) y luego visualizar los datos de cualquiera de las tablas de la BD seleccionada, lo diferente que tiene a la mayoría de ejemplos mostrados en Internet es que se cargan las columnas de forma dinámica  es decir que se cargan todas las columnas de la tabla y no solo un numero estático de columnas definidas en el programa, lo cual puede servir en muchos casos, con esto se tiene la conexión y la lectura de datos, si se quiere hacer cualquier otro uso como insertar , eliminar etc, se puede seguir el mismo patrón partiendo de este ejemplo.

En el .zip va incluido el driver (ultima version) para conectar java con postgres, se realizo en netbeans 7.3 con jdk 7u21.

La aplicación se ve así:



y en el cuadro de dialogo ingresan los valores correspondientes y en el combobox de la ventana principal pueden ver las tablas disponibles y ver los datos de cada una.


Pueden descargarla en: Java - Postgres
Nota: El código no es el mas optimo que digamos porque no tenia tiempo para mejorarlo, la prioridad era que funcionara XD y lo pueden notar en los métodos de la clase conexión pero puede ser mejorado y/o modificada de acuerdo a las necesidades.

Créditos a:  http://gnucesar.wordpress.com/2008/07/22/conexion-a-postgres-desde-java/ ya que a partir de esta clase me base para hacer la conexión.

jueves, 2 de mayo de 2013

On 14:41 by Unknown in , ,    3 comments
Las siguientes consultas muestran como trabajar con CASE en sql haciendo uso de tablas dinámicas o pivote, subconsultas entre otras cosas que nos sirven para realizar consultas mas complejas a una base de datos.

Se muestra lo que se pide en la consulta y su resultado (imagen) de la misma, al final se puede descargar el script de la base de datos y el .sql con el código de las consultas. Las consultas se realizaron en postgresql.

Se tiene el siguiente modelo relacional



1. ¿Quién es el cliente que más ha comprado? Mostrar el número de cliente, el primer nombre y el total.
cliente que mas ha comprado (dinero gastado)

Aquí cabe resaltar la forma para mostrar el numero de cliente y el primer nombre junto con el máximo  esto realizado con subconsultas.


2.  ¿Cuál es la categoría más vendida y la menos vendida? (una sola consulta)
Mostrar en la primera línea el nombre de la categoría máxima y el total vendido y
en la segunda línea el nombre de la categoría mínima y el total vendido.

En esta consulta se utiliza la clausula UNION.


3. ¿Cuáles son los totales vendidos por categoría y por mes?
Mostrar la categoría, el total del mes 1 hasta el mes 12 y los subtotales tanto
horizontal como vertical

En esta consulta ya se trabaja con las tablas dinámicas mostrando la información que se tiene almacenada en filas como columnas.


4. ¿Cuáles son los totales vendidos por país y por categoría?
Mostrar el país, el total de la categoría Action hasta Travel y los subtotales tanto
horizontal como vertical

Otra consulta parecida a la numero 3 solo que un poco mas extensa.



5. ¿Cuáles son los totales vendidos por los mejores 5 vendedores por categoría?
Mostrar el nombre del vendedor, el total de la categoría Action hasta Travel y los
subtotales tanto horizontal como vertical.

Otra consulta con tablas dinámicas pero que para los totales de cada columna se necesita realizar una subconsulta con cada uno porque no se están tomando todos los datos sino que solo los cinco mayores.


Descarga:  Consultas

miércoles, 1 de mayo de 2013

On 15:40 by Unknown in , ,    No comments
Pequeño tutorial de como instalar postgresql en ubuntu, específicamente la ultima versión a la fecha de este sistema operativo.

Hay varias formas de realizarlo  pero esta me parece de las mas sencillas ya que lo único que cambia en cuanto a su instalación con windows es que necesitamos dar permisos de ejecución al archivo .run y listo, lo ejecutamos desde la terminal como superusuario o doble clic en la carpeta como superusuario.

1. Descargamos la ultima versión desde el siguiente enlace.

2. Nos autenticamos como superusuario (sudo su) y nos vamos a la carpeta donde descargamos el archivo de postgresql.
Le damos permisos de ejecución (chmod +x <nombre_archivo>
como podemos ver en la primera parte donde liste los archivos de la carpeta (ls) aparece el de postgresql con letras blancas, al darle permisos de ejecución y al listar nuevamente aparece con letras verdes.





3. Ejecutamos (./<nombre_archivo>) el archivo y ya comienza la instalación normal.



y por ultimo ya podemos abrir Pgadmin III para trabajar con esta base de datos.


On 15:18 by Unknown in    No comments
La semana pasada se libero la ultima versión de Ubuntu, he usado ubuntu desde hace 3 años y he utilizado desde la versión 8 hasta esta ultima y la verdad que al principio me funciono excelente pero ya a partir de la versión 11.10 empece a tener problemas de compatibilidad, errores bastante raros y con la versión que trabaje bastante fue con la 12.10 y me pareció bastante inestable en comparación con las anteriores.



Entonces decidí esperar esta ultima versión y ver si había mejorado en algo y la respuesta es SI, esta versión ha mejorado bastante en comparación a su predecesora y resaltare los puntos de mejora :

1. Inicio mas rápido:  El inicio es bastante rápido  aproximadamente unos de 10-15 segundos, no mas que W8 pero si mas rápido que ubuntu 12.xx o alguna otra versión de windows.


2. Apagado casi instantáneo  El apagado de ubuntu casi siempre ha sido un poco lento, ahora vuela, solamente clic a la opción apagar, luego al menú de apagado que aparece y en cuestión de segundos se apaga el sistema.

3. rapidez en Unity: Una de las cosas que no ayudaban mucho era la lentitud al querer buscar alguna aplicación con unity ahora encuentra todo bastante rápido.



4. Fluides en el Sistema: Da esa sensación de fluidez y rapidez al navegar por carpetas, trabajar en el escritorio y correr aplicaciones.



El único problema que tengo es que no me reconoce el 100% de mi batería y intente probar cuanto dura la carga y es aproximadamente 1h 35min mientras que en windows casi 2h 30min y no se si tenga que ver con el hardware o ya sea problema directamente del S.O.

Pero ignorando lo anterior hasta ahora mi experiencia ha sido bastante buena ya hasta le he agarrado gusto a unity (no me gustaba) y en resumen se puede decir que ubuntu 13.04 es RAPIDO.

Queda explorarlo y trabajar con el a fondo para ver si en realidad ha sido mejorado en todos los aspectos posibles.

lunes, 29 de abril de 2013

On 15:22 by Unknown in ,    No comments
El siguiente ejemplo muestra la redistribución entre protocolos de enrutamiento.

Tenemos la siguiente topologia:


Como se ve en la imagen vamos a redistribuir entre ospf - rip y entre ospf-eigrp.

R1 tiene protocolo rip
R2 tiene protcolo rip y tambien ospf asi como redistribucion de rip a ospf y redistrubucion de ospf a rip.
R3 y R4 tienen ospf
R5 tiene ospf y eigrp asi como la redistribucion entre ambos.
R6 tiene protcolo eigrp

Se hacen las respectivas configuraciones de las ip de cada puerto, se asignan protocolos y ya es posible hacer pruebas para ver si redistribuimos de forma correcta.


Por ejemplo un traceroute de R6 a R1


y por ultimo ping del host ubuntu al winxp y tracert de winxp a ubuntu respectivamente
.



Dejo los archivos de configuración de los routers por si le sirve para ver la sintaxis y entender de mejor forma el enrutamiento dinámico.

Configs

domingo, 21 de abril de 2013

On 19:42 by Unknown in ,    No comments
Cada uno de los protocolos de enrutamiento dinámico es usado para diferentes propósitos de acuerdo a las características de cada uno y comúnmente se utilizan juntos en redes de gran tamaño.

En el post anterior se mostro un ejemplo del protocolo RIP, en este se mostrara nuevamente su sintaxis asi como tambien como hacer que se comunique con otros protocolos (comando redistribute) y lo mismo para el protocolo EIGRP y el OSPF.


Sintaxis protocolo Rip:


conf t
router rip 
version 2
network <red_directa>  
exit

Si en dado caso tenemos un router que tiene que redistribuir el protocolo OSPF agregamos entonces:

conf t 
router rip
version 2
redistribute ospf [ID] metric 1 
exit

Si lo que queremos distribuir es el protcolo EIGRP entonces:

conf t
router rip
version 2
redistribute eigrp [SA] metric 1 
exit

o bien si ya sabemos previamente que debemos redistribuir protcolos lo hacemos todo junto desde el inicio.


conf t
router rip 
version 2
network <red_directa> 

--redistribucion--
exit

Donde [ID] es el valor asignado al protocolo OSPF y metric 1 es el valor de la métrica por defecto  y
[SA] es el valor asignado al sistema autónomo del protcolo eigrp.

Sintaxis Protocolo EIGRP

conf t
router eigrp <SA>
network <red_directa> <wilcard>
exit

<SA> es el valor de sistema autonomo que le asignemos al protcolo eigrp el cual es un numero entre 1 - 65535. NOTA: todos los routers que esten relacionados con el protocolo eigrp deben tener el mismo numero de SA.

Para redistribuir RIP:

conf t
router eigrp <SA>
redistribute rip metric 10000 10 255 1 1500
exit

donde los valores de metric son : <ancho_banda> <retraso><confiabilidad><carga><mtu>

para mas informacion sobre estas metricas pueden ir a:
metricas EIGRP

Para redistribuir OSPF:

conf t
router eigrp <SA>
redistribute ospf [ID] metric 10000 100 255 1 1500 
exit


Sintaxis protocolo OSPF



conf t
router ospf <id> 
network <red_directa> <wilcard> area <num_area>
exit


donde <id> es un numero entre 1 y 65535 y debe ser común entre los demás routers que se relacionen con el protocolo ospf y el área también debe ser el mismo numero en los demás routers.

Para redistribuir RIP:

conf t
router ospf <id>
redistribute rip subnets
exit

Para redistribuir EIGRP:

conf t
router ospf <id>
redistribute eigrp [SA] metric 500 subnets
exit

Para mas información sobre las métricas de OSPF: Metricas OSPF

Esa es la sintaxis básica para configurar protocolos y la redistribución  En el siguiente post se mostrara un ejemplo realizado en GNS3 en donde se utilizaran los 3 protcolos juntos.


martes, 16 de abril de 2013

On 21:26 by Unknown in ,    No comments
Vamos a ver como configurar el protocolo RIP que es el protocolo mas sencillo de ruteo dinamico, utilizando GNS3.


1. Tenemos la siguiente topologia:

3 routers con protocolo RIP y dos maquinas virtuales (virtualBox) con Windows xp.

2. la configuración del router 3 (R3) seria de la siguiente manera:

2.1 asignamos la dirección ip a cada una de las interfaces del router (f0/0 y f0/1) donde las ip serian 10.0.0.1 y 30.0.0.2 respectivamente (en la imagen se muestran todas las direcciones).

asignadas todas las direcciones en los routers (asumo que ya saben hacerlo) vamos a configurar el protocolo, para R3 seria:

en 
conf t
router rip
version 2
network 10.0.0.0
network 30.0.0.0
exit

donde lo único que cambia es network <red_conectada_directamente>
y como este tiene 2 redes se colocan las 2, si solo tuviera 1 solo se coloca 1.

Se configuran los dos siguientes routers de la misma forma y se configuran los equipos al final.

Los equipos deben de tener configurado el adaptador de ethernet 2 ya que la maquina virtual tiene 2 por defecto, el primero se desactiva y el segundo se modifica colocándole la ip, mascara y default gateway.
Por ejemplo para la maquina winxp (ver imagen) sus datos serian:


Como podemos ver en la imagen el adaptador 1 esta desactivado, la ip es la que se muestra en el diagrama igual que la mascara y el default gateway es la direccion de la interfaz del router que se comunica con la PC.

Hecho lo anterior ya se pueden realizar pruebas de ping, ya sea entre routers o de una computadora a la otra.

1. Ping desde R3 hacia f0/1 de R1


2. ping de winxp hacia R2


3. ping de winxp hacia winxp (Desactivar firewall en ambas PC's)


Esta configuracion es mucho mas sencilla que el ruteo dinamico y pues se pueden realizar distintas topologias siguiendo los estandares de dicho protocolo.

lunes, 15 de abril de 2013

On 15:01 by Unknown in ,    5 comments
Para realizar topologias de gran tamaño, para mejor simulación o distintos factores podemos utilizar diferentes computadoras físicas para dicha topologia y conectarlas, la forma mas sencilla de hacerlo es por medio de cable cruzado.

El siguiente es un ejemplo sencillo con un solo router y una nube en cada computadora el cual es la base para realizar diagramas mucho mas grandes.

Antes de empezar los puntos importantes a tomar en cuenta y los problemas mas comunes por los cuales no se puede tener comunicación entre las dos computadoras son los siguientes:

1. Mala configuración de la red. Es decir no asignamos correctamente las direcciones IP a las interfaces (puertos).

2. Incorrecta configuracion de la nube. Una nube nos sirve para la comunicación con la otra computadora, es decir es nuestro enlace de entrada y salida por lo que es necesario tenerla para este tipo de conexión y configurarla de forma adecuada.

3. Firewall activado: Si el firewall de una o ambas computadoras esta activado no se podrá realizar la comunicación debido a la seguridad que este impone por lo que es necesario desactivarlo.

4. En el ultimo de los casos si todo lo anterior esta bien, el antivirus puede estar bloqueando la comunicación entre ambas computadoras por lo que habrá que revisar los parámetros de configuración del antivirus o bien desactivarlo.

Tomando en cuenta los puntos vamos con el ejemplo:

1. Agregamos un router y una nube.
2. De momento no es posible conectarlos ya que debemos configurar una interfaz para la nube
3. Clic derecho en la nube y nos vamos al combo box que se ve en la imagen.


elegimos la opción Ethernet ya que por ella nos comunicaremos, clic en "add", "apply" y "ok ", ahora ya podemos conectar el router con la nube.

4. Configuramos el router asignando la ip al puerto conectado a la nube, por ejemplo la dirección 192.168.0.1/24

5. Realizamos lo mismo en la computadora 2 y asignamos la direccion 192.168.0.2/24

6. Conectamos el cable entre las 2 computadoras y realizamos pruebas de ping, como mencione tomando en cuenta los puntos mencionados al principio si todo esta correcto no debe de dar problema y asi de sencillo nos comunicamos  entre 2 pc's. Para una topologia mas compleja es el mismo caso y solo es de configurar correctamente los routers.



En la imagen anterior vemos al router conectado a la nube, esa nube lo que hace es simularnos el router de la otra maquina es decir como que tuvieramos:



Pero como son en diferentes PC'S por eso se utiliza la nube.






sábado, 6 de abril de 2013

On 20:18 by Unknown in , ,    2 comments
El siguiente ejemplo es sobre como realizar un ruteo estático sencillo utilizando gns3.
Asumiendo que ya tienen instalado e importada al menos una imagen de algunos de los routers
de este simulador voy a explicar como realizar el ruteo.

Realizar el diagrama de forma física conectando los routers y agregando las etiquetas para identificar mas fácil las redes y las direcciones IP.


Una vez teniendo el diagrama iniciamos los routers.
Encendidos se les debe asignar una direccion IP a cada uno de los puertos de los routers en uso para ello se hace lo siguiente.

clic derecho en el router, clic en console se utilizan los siguientes comandos:

en 
conf t
int <puerto>     
no shutdown
ip address <direccion_ip> <mascara de red>
exit
exit

Por ejemplo para R1 (ver diagrama ) seria:

en 
conf t
int f0/0     
no shutdown
ip address <20.0.0.2> <255.255.255.0>
exit
exit
y esto se hace para cada uno de los routers, por ejemplo para el router R2 que tiene 3 interfacez (puertos) configurados se les debe asignar una ip a cada uno por ejemplo:
en 


conf t
int f0/0     
no shutdown
ip address <20.0.0.1> <255.255.255.0>
exit

int f0/1     
no shutdown

ip address <30.0.0.1> <255.255.255.0>

exit

int f1/0     
no shutdown

ip address <10.0.0.2> <255.255.255.0>
exit

Terminado de asignar las direcciones se puede verficar haciendo ping entre los routers que estan conectados directamente. Ahora si viene la parte del ruteo estatico donde se le indica a cada router por donde llegar hacia una red que no conoce por ejemplo ir de R1 hacia R5. Si miramos el diagrama R1 esta conectado en la red 20.0.0.0 pero no hay forma de llegar a la 10.0.0.0 o a la 30.0.0.0 entonces su ruteo estatico seria:

#R1
conf t
ip route <red_destino><mascara_red_destino><interfaz_por_donde_llega>
exit


#R1
conf t
ip route 10.0.0.0 255.255.255.0 20.0.0.1

ip route 10.0.0.0 255.255.255.0 30.0.0.1
exit

Para ver como quedo configurado el ruteo podemos ejecutar:
#R1 
show ip route
y para ver la direccion ip de los puertos

#R1 
sh ip int brief

y para ver la configuracion completa del router

#R1 
show run






Terminado de asignar las rutas estaticas en los routers R2 y R5 (R3 conecta con todas las redes por lo que no se configura) ya es posible realizar las pruebas de hacer ping entre todos los routers.

Por ejemplo en R5 hacer un ping hacia 10.0.0.1


y con esto queda configurado el ruteo estatico.

NOTA: las imagenes ISO utilizadas son del router 2691, para guardar el proyecto se marcan ambos checkbox (save nrams..... y save IOS....) y por ultimo para escribir la configuracion de los routers y no perderla al apagarlos (recordemos que se guarda en la ram de los routers) usamos el comando "write" o "wr".

lunes, 1 de abril de 2013

On 11:04 by Unknown in , ,    No comments
Este semestre me ha tocado usar la base de datos postgresql con la cual no había trabajado, para mayor información de la base de datos Postgresql.

Desde mi punto de vista sus mayores ventajas son:

1. Bastante liviana tanto en peso de la BD (aprox 50 mb) como en carga para el sistema.
2. trae incorporado su propio administrador gráfico conocido como pgadmin.
3. Sencillo e intuitivo a la hora de trabajar.

Esas 3 características me parecen que son bastante importates a la hora de trabajar con una base de datos y sin mencionar que es open source por lo que puede ser usada en cualquier ámbito ya sea personal como profesional.

A modo de ejemplo vamos a ver como importar un backup de una base de datos y luego como recurperarlo.

Importar Backup.

El entorno de pgadmin es como se ve en la siguiente imagen



1. clic derecho en la base de datos
2. elegimos la opcion backup y nos aparece un cuadro de dialogo


Indicamos en que fichero vamos a guardar el backup.
podemos guardar un backup completo es decir estructura y datos o solamente la estructura (DDL de la base de datos).

Para la primera solo elegimos el fichero y damos clic en backup y listo.



para la segunda elegimos el archivo, en el campo format elegimos "plain" y en la pestaña de abajo en dump options #1 elegimos la opción "only schema" y clic en backup. 



Esto nos puede tener el esquema de la base de datos en un archivo y luego importarlo desde data modeler para tener las tablas modeladas a partir de su DDL. 

Por ultimo si queremos recuperar una base de datos, creamos una nueva base de datos, clic derecho en la BD creada y en elegimos la opción "restore" elegimos el archivo en el cuadro de texto y restauramos.

lunes, 11 de marzo de 2013

On 11:33 by Unknown in , ,    No comments
Una forma sencilla de probar o escribir programas en el lenguaje C es hacerlo desde la terminal en alguna distribucion de linux, el ejemplo que se muestra se realizo en ubuntu.



1. verificar que tengamos instalado el paquete de build-essentials  que es necesario para compilar.

2. abrir consola y escribir la siguiente sintaxis.
<editor> <nombre_programa>.c
Donde <editor> puede ser: pico, mined, vi, etc.  Pico es el que trae Ubuntu por defecto pero si no tenemos ninguno tendremos que instalarlos, en mi caso instale Mined (sudo apt-get install mined).

3. una vez que tengamos nuestro editor, limpiamos consola y escribimos
mined hw.c
donde mined es el nombre del editor mencionado y Hw.c es el nombre
Del programa que escribiremos.   Al dar enter nos debera aparecer el editor en consola en donde escribiremos el código fuente.



Ya teniendo el editor cargado procedemos a escribir el código fuente
 #include <stdio.h>
int main()
{
printf("Hola mundo");
printf("\n");
return 0;
}
Una vez escrito nos vamos a file y guardamos el archivo.

Nos salimos del editor y en consola escribimos:
gcc Hw.c -o Hw   
donde la sintaxis seria
gcc <nombreprograma>.c  -o <nombreprograma>
con esto ha sido compilado el programa y ahora ya lo ejecutamos con
./Hw




Y podremos visualizar la salida del programa en consola.

Esto nos puede servir para pequeños segmentos de código o procedimientos que se necesiten probar de forma rápida y fácil  a la hora de escribir un programa grande siempre es mejor utilizar un IDE o un editor avanzado.

lunes, 4 de marzo de 2013

On 21:43 by Unknown in ,    No comments
De esto se encuentra bastante información pero quiero sintetizar de forma breve los pasos para realizarlo, una de las razones de hacerlo es porque quizás al actualizar ubuntu en el grub nos aparece una gran linea o varias lineas de texto cuando solamente queremos ver "Ubuntu" o "Windows" y otra pues solamente por experimentar o en en ultimo caso por una tarea de hace algún tiempo (mi caso XD) pero lo importante es saber como hacerlo.

PASOS:
1. tenemos este grub inicial



2. En la terminal

Sudo <editor> /boot/grub/grub.cfg
Ej: Sudo gedit /boot/grub/grub.cfg

3. Nos abre el archivo grub.cfg el cual tiene una estructura


4. Como se observa aparecen varias etiquetas "menuentry" que son opciones del grub y lo que esta entre comillas son los nombres que poseen estos son los que podemos modificar y/o quitar.

Por ejemplo “Ubuntu, Linux 2.6,32-31-generic” lo cambiaremos por “ubuntu 11” y al sistema de Windows le pondremos de nombre “SISTEMA WINDOWS” 

y otra opcion que nos sirve es cambiar que opcion inicia por defecto para esto en la parte de arriba del archivo donde se encuentra:

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  set have_grubenv=true
  load_env
fi
set default="0"

ubicamos la linea set default y colocamos el valor de la opcion, como vemos esta en 0 y en este caso vamos a dejar a windows por defecto la cual seria la opcion numero 10.

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  set have_grubenv=true
  load_env
fi
set default="4"

Guardamos y el grub queda ahora:


Así de sencillo configuramos el grub solo hay que tener cuidado en no modificar otros valores o borrar datos que no sean etiquetas del menú para no afectar el arranque del sistema y así como en el grub mostrado todas las opciones donde dice (recovery mode) se pueden eliminar y no hay ningún problema y con esto se vera mas estético el inicio del sistema.

Al final eliminando unas cuantas entradas del menú lo deje así














On 20:47 by Unknown in    No comments
El siguiente mini tutorial muestra como crear vlans en packet tracer de cisco para mas información sobre Vlans pueden ir a

y para conocer mas sobre packet tracer a 


Su interfaz:


Lo que haremos es crear 3 virtual LANs llamadas RRHH, VENTAS Y CONTA y se van a conectar las maquinas como mostrara en la imagen en la cual se indican los puertos de cada switch a los cuales se conectaran las maquinas así como los puertos que se usan para comunicación entre switch.


Se puede observar que tenemos 3 switch, 2 maquinas que pertenecen a la VLAN RRHH 4 de la VLAN Ventas y 3 de la VLAN Conta. Este es un ejemplo talvez muy objetivo pero los pasos son genericos, la idea general se puede tomar y adaptarla a lo que se necesite y el proposito es mostrar la creacion de VLANs.

PASOS: 

1. Agregar las PCs al area de trabajo (drag and drop)

2. Agregar la IP a cada una de ellas, en este ejemplo yo tengo para las VLAN de RRHH IPs 192.168.10.xx para Ventas 192.168.20.xx y para Conta 192.168.30.xx si se desea se puede hacer asi pero no es necesario ya que bien podriamos tener  IPs con valores 192.168.0.xx para todas las maquinas y no hay ningun problema ya que el proposito de crear una VLAN es que por ejemplo una maquina de VENTAS no pueda entrar a la red de RRHH solo con cambiarle IP.

3. asignadas las direcciones IP Colocamos los Switch y los unimos, esto con el panel que se encuentra en la parte de abajo (icono de rayo, ver imagen de interfaz) y ahi elegimos copper cross-over para unirlos y al unirmos elegimos el puerto.

4. ahora para unir las PCs sus respectivos switch nuevamente en el icono de conexiones (icono de rayo)  elegimos copper straight-Through y damos clic en la PC y ahi elegimos la opcion FastEthernet y la unimos con el switch que queremos y elegimos el puerto del switch.

5. Con esto ya esta el esquema ahora hay que crear las VLANs. Para ello nos vamos a la consola del Switch y tecleamos:

enable     
configure terminal
vlan <numero>
name <name>

por ejemplo:
en 
conf t
vlan 10
name RRHH

Como pueden ver los primeros comandos tienen abreviaturas que es mas facil de escribir y aprenderse y hacen lo mismo. Con esto se crean las VLANs que necesitamos y se hace para todos los switch que se tengan que configurar.

6. Creadas las VLANs solo queda configurar los puertos de los switches y para ello realizamos el siguiente procedimiento para cada puerto que haya que configurar: 
Nuevamenta la consola del switch:

en
conf t
int <puerto>
sw mode <modo>
sw access vlan <numero vlan>

Ejemplo: 
en
conf t
Switch(config)#int fa0/7
Switch(config-if)#sw mode access
Switch(config-if)#sw access vlan 30

El ejemplo lo que hace es configurar el puerto 7 como puerto de acceso a la VLAN 30  que es la de CONTA.

y lo mismo se realiza para todos los puertos, para este ejemplo en el switch1 (SW1) se configuran los puertos 11 y 16 como acceso y el puerto numero 1 es modo trunk (para comunicar entre switch)

Para configurar en modo trunk se hace el mismo procedimiento anterior sin el ultimo paso.
en
conf t
int fa0/1
sw mode trunk

ya no se le asigna vlan.

Se repite con los demas switches y con esto ya estan configuradas las 3 VLANs. En resumen lo que hay que hacer es:

1. Agregar maquinas
2. asignar IPs a las maquinas
2. Unir switches
3. Unir maquinas con switches respectivos.
4. Crear Vlans en cada uno de los switches.
5. Configuar puertos de cada uno de los switches (los de accesos para las maquinas y los de tipo trunk para unir switch con switch)

6. Realizar pruebas, por ejemplo hacer ping entre las maquinas de recursos humanos o cambiar IP a una maquina de ventas para poder hacer ping a una de CONTA (no debe de hacer ping) etc.

Por ultimo dejo un par de videos que me ayudaron a entender como configurar ya que explican bastante bien y de forma sencilla.

El primero.



El segundo que es el primero de tres partes.



Ahora si para finalizar el archivo .pkt de la configuracion que yo realice para que puedan ver como estan configurados los puertos y realizar las respectivas pruebas.

VLAN.pkt

lunes, 25 de febrero de 2013

On 8:43 by Unknown in , ,    3 comments
Un script en sql no es mas que un archivo (.txt, .sql, etc) que contiene instrucciones sql para ejecutarse en algun sistema de base de datos, el objetivo es ejecutar un conjunto de instrucciones de una sola vez sin hacerlo linea por linea y el uso mas comun que se les da es para hacer back-ups y otras tareas administrativas. En este caso vamos a ejecutar unas cuantas lineas leyendo solamente un archivo de texto y que la linea de comandos se encargue de procesar dichas instrucciones a partir de que solamente le indiquemos que script queremos utilizar.

 1. El script es el siguiente
                                 

Una vez que tenemos el script abrimos la consola de comandos de db2 y vamos a escribir lo siguiente

db2 -tvf <nombre_archivo> Ej: db2 -tvf "C:\Script.txt" como se muestra en la imagen

Ahora nos aparecera la primera linea del script en la consola ya que lo que hace es leer instruccion por instruccion las cuales van separadas por punto y coma.


Podemos ver que sigue trabajando con las instrucciones una por una hasta llegar al final del script y mostrando resultados por cada operacion realizada.


Un ejemplo con un script realmente pequeño pero que es la base que puede servir para trabajar con un script de mas de 200 lineas y que ahorrara tener que estar tecleando linea por linea en la linea de comandos.