miércoles, 5 de octubre de 2011

Tecnologias Web 2.0 Seccion C

Buen dia a todos.

Favor de acceder al siguiente link para poder ingresar sus datos.

Listado de Blogs Seccion C

Saludos

lunes, 18 de octubre de 2010

Definicion Dirigida por la Sintaxis de generacion de codigo de 3 direcciones

Pues ahi recordando viejos tiempos, encontre este codigo y ps ya que hace ratos que me fue util y que cree este archivo y lo acabo de encontrar, espero que sea util para las nuevas generaciones.

Como puse hace años cuando lo publique, esta es solo una solucion, a cada quien se le puede ocurrir mas soluciones para el mismo problema, Asi que abran sus mentes, y si lo llegan a usar hay les encargo los creditos respectivos a este sitio xD.

/El uso de los nombres de las variables en este codigo queda a criterio de cada persona. jaja.



E::= E * E {: write(t,cont,=,E.cad,'*',E.cad);
E.cad = concat(t,cont);
cont = cont + 1;
:}


E::= E + E {: write(t,cont,=,E.cad,'+',E.cad);
E.cad = concat(t,cont);
cont = cont + 1;
:}

E::= ID {:write('t',cont,'= ptr + ',Buscar_pos_tabla(ID));
write('t',cont+1='pila[ t',cont,']');
E.cad = concat('t',cont+1);
cont=cont+2;
:}

E::= NUM {:E.cad = num; :}

E::= ID {: x.nom = ID
write('t',cont,'= ptr +',Buscar_pos_tabla(ID));
EliaBD_var = concat('t',cont);
cont = cont + 1; :} X {: write('t',cont,'=',X.cad,'+',EliaBD_var)
write(‘t’,cont+1,=,ID,’[ t‘,cont,’]’) ;
E.cad=concat(‘t’,cont+1);
cont=cont+2
:}




PROCEDIMIENTO ::= PROC ID ( l_p ) VARIABLES { Sentencias }


l_p ::= lista_paramentros
l_p ::= epsilon

lista_parametros::= lista_parametros , parametro
lista_parametros::= parametro

parametro::= TIPO ID


VARIABLES::= VARIABLES var
VARIABLES::= var


var::= lista_id : TIPO


lista_id ::= lista_id , ID
lista_id ::= ID




Sentencias ::= Sentencias sent
Sentencias ::= sent



sent::= 'if' {:limpiar_pila_decondiciones();:} '(' COND ')' 'then'{:imprimir_etiquitas_verdaderas();:}
'{' Sentecias {:write('goto L',cont_etiq);:}
'}' {:imprimir_etiquitas_falsas();
write('L',cont_etiq);
:}



sent::= ID {: x.nom = ID;
white('t',cont,'= ptr +',Buscar_pos_tabla(ID));
EliaBD_var = concat(t,cont);
cont = cont + 1; :} X = E {: write(t,cont,=,x.cad,'+',EliaBD_var);
write('pila[t',cont,'] =',E.cad);
cont = cont+1;
:}



sent::= ID {: white(t,cont,'= ptr +',Buscar_pos_tabla(ID));
EliaBD_var = concat(t,cont);
cont = cont + 1; :} = E {: write(t,cont,=,x.cad,'+',EliaBD_var);
write('pila[t',cont,'] =',E.cad);
:}



X::= X {:Rango.pos = X.pos; Rango.non = X.nom:} '[' RANGO ']' {: if( X.pos == 1)
{
Write('t', cont, '=',X.cad, '- 1');
write('t', cont + 1, '= t',cont,'*',[tamaño_fil(Rango.nom, Rango.pos)*tamaño_col(Rango.nom, Rango.pos)]);
write('t', cont + 2, '= t',cont+1,'+', Rango.cad);
X.cad=concat('t',cont+2);
cont=cont+3;
}else if(X.pos==2) {/*POR SI VIENE DE TRES BLOQUES = MAT[][][]*/}
else {/*POR SI VIENE DE MAS DE TRES BLOQUES = MAT[][][][].......*/}
X.nom=Rango.nom;
X.pos=Rango.pos+1;
:}

x::= {:Rango.nom=X.nom; Rango.pos=0;:}'[' Rango ']' {: X.cad=Rango.cad;
X.nom=Rango.nom;
X.pos=Rango.pos+1;
:}

Rango ::= Rango , E {: write('t',cont,'=', E.cad, '- 1');
write('t',cont+1,'= t',cont,'*',tamaño_fil(Rango.nom, Rango.pos));
write('t',cont+2,'= t',cont+1,'+',Rango.cad);
Rango.cad=concat('t',cont+2);
Rango.nom=Rango.nom;
Rango.pos=Rango.pos;
cont=cont+3;
:}

Rango ::= E {:write('t',cont,'=',E.cad);
Rango.cad = concat('t',cont);
Rango.nom = Rango.nom // de heredado a sintetizado
Rango.pos = Rango.pos // de heredado a sintetizado
cont=cont+1;
:}


/*

Las funciones tamaño_fil(String x, int y1), tamaña_col(String x, int y1)

el String x, nos dice cual es el nombre de matriz que buscamos en la tabla de simbolos, y
y1 nos dice la posicion real en la que estamos en la matriz, por ejemplo:

MAT[/*ESTAMOS ACA*/][] el valor de y1 es 0 (cero)
MAT[][/*ESTAMOS ACA*/] el valor de y1 es 1 (uno)

*/





COND ::= COND or {:write_todos_los_falsos(NIVEL);
sacar_todos_los_falsos(NIVEL); :} COND


COND ::= COND and {:write_ultimo_verdadero(NIVEL);
sacar_ultimo_verdadero(NIVEL); :} COND


COND ::= '('{:NIVEL = NIVEL + 1;:} COND {:guardar_verdadero(AGRUPAR_VERDADERAS(NIVEL),NIVEL-1);
guardar_falso(AGRUPAR_FALSAS(NIVEL),NIVEL-1);
NIVEL = NIVEL - 1 :} ')'


COND ::= NOT'('{:NIVEL = NIVEL + 1;:} COND {:guardar_verdadero(AGRUPAR_FALSAS(NIVEL),NIVEL-1);
guardar_falso(AGRUPAR_VERDADERAS(NIVEL),NIVEL-1);
NIVEL = NIVEL - 1 :} ')'


COND ::= E op E {: write('if(',E.cad, op.cad, E.cad,') goto L',cont_etiq);
guardar_verdadero('L',cont_etiq,NIVEL);
write('goto L',cont_etiq+1);
guardar_falso('L',cont_etiq+1,NIVEL);
:}


op :: = '<' {:op.cad = '<' :}
op :: = '=' {:op.cad = '=' :}
op :: = '>' {:op.cad = '>' :}
op :: = '=>' {:op.cad = '=>' :}

miércoles, 28 de octubre de 2009

Hola

jeje, ya llevaba ratos de no entrar a mi blog, recuerdo que lo habia dejado cuando no mas tenia 1034 visitas, ahora ya sobre pasa las 2400 jeje, si paso mucho tiempo, pero bueno solo los pasaba a saludar ustedes lectores que visitan mi blog de vez en cuando.

Bendiciones.

miércoles, 12 de agosto de 2009

Una pequeña historia.

Entre tantos correos que recibo de cuates y cuatas que les gusta enviar chistes e historias por correo (digase spamm XD) estaba leyendo esta historia que me mando una cuata y como ya llevo ratos de no postear algo, se me ocurrio ponerla en mi blog, a mi me gusto, espero que a ustedes igual.

Saludos.

Un señor va de cacería al África y lleva a su perrito. Un día, el Perrito Se aleja del grupo, se extravía y comienza a vagar solo por la selva.

En eso ve a lo lejos que viene una pantera enorme a toda carrera.

Al ver que la pantera lo va a devorar, piensa rápido qué hacer.

En eso ve un montón de huesos de un animal muerto y empieza a mordisquearlos.
Cuando la pantera está a punto de atacarlo, el perrito dice:

- ¡¡¡Ah, qué rica pantera me acabo de comer!!!

La pantera lo alcanza a escuchar y frenando en seco, gira y sale despavorida pensando:

¡¡¡¿Quién sabe qué animal será ese. A ver si me come a mí También???!!!

Un mono que andaba trepado en un árbol cercano, oyó y vio la escena.
Sin más salió corriendo tras la pantera para contarle cómo la había engañado el perrito:

'¡Pantera pendeja. Esos huesos ya estaban ahí! Además, es Sólo un simple perrito!'

La pantera, vuelta un diablo, sale corriendo a buscar al perrito con el mono montado en el lomo El perrito ve a lo lejos que viene nuevamente la
Pantera con el mono y se da cuenta de que este último había ido con el
chisme.

¿Y ahora qué hago?- piensa todo asustado. Entonces, en vez de
salir corriendo, se queda sentado dándoles la espalda, como si no los
hubiera Visto, y cuando la pantera estaba cerca de atacarlo de nuevo, el
perrito exclama:

¡¡¡ Este mono torpe, hace como media hora que lo mandé a traerme otra pantera y todavía no aparece!!!

De nuevo la pantera frena
en seco, gira y sale despavorida, claro, no sin antes desquitar su ira y su hambre con el mono. Jajajajaja!!!!!!

MORALEJA: EN MOMENTOS DE CRISIS, SÓLO LA IMAGINACIÓN ES MÁS
IMPORTANTE QUE EL CONOCIMIENTO.

1... Procura ser imaginativo como el PERRITO.
2... Evita ser pendejo como la PANTERA.
3... Y nunca, pero nunca! seas un torpe chismoso como el MONO!!!!!!

miércoles, 17 de junio de 2009

Mis ultimas entradas..

Bueno, se que ultimamente no he escrito nada que sea algo que halla salido de mi propio repertorio, pero es que con el tiempo que casi no tengo ni siquiera puedo de escribir algo interesante o de mostrarles algo curioso. Lo único bueno es que los post que he subido ayudan a que se siga expandiendo el conocimiento en la Web y mostrar algunas cosas que a nosotros nos costo hacer, mostramos como lo solucionamos para que a otros no les pase lo mismo.

"Algún día" subiré algo mas que esto XD.

sábado, 13 de junio de 2009

Comandos usados en Subversion

Comandos utilizados en Subversion para poder Actualizar, ingresar y hacer alguna revisión de los proyectos asignados a los repositorios

Comandos de Subversion:


Import: Envía de forma re cursiva los cambios de PATH en URL

$svn import –m “nuevo import” repositorio1 http://localhost/svn


Export: Exporta el árbol de directorios Limpio.

$svn export http://localhost/repositorio /lugar/del/repositorio/local


Crear un nuevo repositorio:

$ svnadmin create /lugar/del/repositorio


Importar archivos o directorios dentro del repositorio:

$ svn import /tmp/project file:///lugar/del/repositorio -m “import inicial”


Checkout, hacer copia del repositorio de trabajo:

$ svn checkout file:///lugar/del/repositorio/trunk project


Diferencias entre el repositorio y la copia local

$ svn diff


Añadir ficheros y directorios al repositorio

$ svn add foo.c


Checkout: obtener una copia del respositorio al repositorio local de trabajo.

$ svn checkout http://localhost/repositorio


Commit: Envia los cambios realizados del repositorio local al repositorio de versiones.

$ svn commit –m “comentarios”


Update: Actualiza la copia de trabajo, incluyendo los cambios que contiene el repositorio.

$ svn update

Usando Subversion, Hudson y Trac en Ubuntu 9.04

Subversion:

Instalación de Subversion:

A continuación mostraremos como realizar la instalación de Subversion y el modulo de WebDAV de apache para Subvesion en la distribución de Ubuntu 9.04

Instalaremos Subversion con el siguiente comando:


# apt-get install subversion


Al finalizar la instalación de subversion instalaremos el modulo de Apache WebDAV subversion:

# apt-get install libapache2-svn


Ahora configuraremos el repositorio de subversion para el proyecto. Creamos una carpeta en la siguiente dirección con el siguiente comando:


# mkdir /var/svn-repos/


Creamos el repositorio:


# svnadmin create --fs-type fsfs /var/svn-repos/practica1


En este momento asignamos los permisos necesarios al repositorio y ademas creamos un usuario para que pueda utilizar el repositorio.

# groupadd subversion
# addgroup eliabd subversion
# chown -R www-data:subversion /var/svn-repos/*
# chmod -R 770 /var/svn-repos/*

Configurando Subversion WebDAV

Ejecutamos los siguientes comandos:


# a2enmod dav
# a2enmod dav_svn


Actualizamos los usuarios creados:


# htpasswd -c /etc/apache2/dav_svn.passwd eliabd


y modificamos el archivos:


nano /etc/apache2/mods-available/dav_svn.conf


E ingresamos lo siguiente al final del archivo:

titulo


< Location /practica1 >
DAV svn
SVNPath /var/svn-repos/practica1
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
< /Location >”


colocarlo sin comillas dentro del archivo, y en los tags <> quitar los espacios en blanco de los extremos

Guardamos los cambios y reiniciamos apache para que los cambios tengan efecto:

# /etc/init.d/apache2 restart

Por ultimo en el navegador web ingresamos:

http://localhost/practica1/ y ahí podremos ver nuestro repositorio.

Hudson:

Antes que nada es es necesario descargar el paquete de Husdon, este lo podemos encontrar en la siguiente dirección:


https://hudson.dev.java.net/servlets/ProjectDocumentList


En la parte de Releases y podemos descargar la version mas reciente: 1.309



Configuracion de Hudson en Ubuntu 9.04:

Abrimos un Terminal y desde ahí nos dirigimos a la carpeta en donde se encuentra nuestro Archivo hudson.war, ya estando en esa carpeta ejecutamos el siguiente comando:


eliabd@eliabd-laptop:~$ java -jar hudson.war


Con ello ya podremos acceder a la interfaz de Hudson colocando en el explorador:


http://localhost:8080

Ahora, para agregar nuestro repositorio con el proyecto damos click en “New Job”,

Nos aparecera otra ventana, y en la parte de “Job Name” colocamos un nombre y luego seleccionamos la segunda opcion:

Build a free-style software project This is the central feature of Hudson. Hudson will build your project, combining any SCM with any build system, and this can be even used for something other than software build.

Y damos click en el boton de “Ok”

Nos aparecera la siguiente pagina:

En la parte de Source Code Management y seleccionamos la opción de Subversion, y luego ingresamos los parámetros:


Repository URL: http://localhost/practica1


y en Build Triggers seleccionamos la opcion Build periodically e ingresamos los siguientes parametros:


5 * * * *

(Minutos) (Horas) (Dia del mes) (Mes) (Dia de la semana)


Esto hará que hudson revise el repositorio cada 5 minutos, así nos tendremos una revisión automática del repositorio.

y por Ultimo, en la parte baja de la pagina se encuentra el botón “Save”, con esto ya tenemos nuestro repositorio unido con Hudson.

Trac:

Instalación de Trac

La instalación de Trac en Ubuntu 9.04 es muy sencilla, este ya se encuentra en los repositorios de archivos y programas de Ubuntu solamente es de dar ingresar en una Terminal los siguientes parametros.


sudo apt-get update

(esto es para actualizar los repositorios de archivos de ubuntu en nuestra maquina)

y luego

sudo apt-get install trac

(con ello se instalaran todas las dependencias que tenga trac).


Y listo, ya esta instalado Trac.

Trac Enviroment

Ahora si, ya teniendo instalado Trac, podemos hacer entorno en el cual nos basaremos para trabajar, para ello crearemos una carpeta, la direccion de esta carpeta puede ser cualquiera, solo es de tener el cuidado de que no se facil de eliminarla o moverla de donde la creemos, ingresamos los siguientes comandos:

  • $ sudo su
  • # mkdir -p /var/trac/projects/prac1
  • # trac-admin /var/trac/projects/prac1 initenv

Luego nos aparaceran varias preguntas las cuales hay que responder de la siguiente manera:

  • Nombre del proyecto: ejemploX (presionamos Enter)

  • Database Connection String(por default sqlite): la dejamos en blanco (presionamos Enter).

  • El tipo de control de Versiones (por default svn): svn (presionamos Enter).

  • Direccion del repositorio: /ruta/de/repositorio/de/svn/ (presionamos Enter).

Y le damos permisos al usuario de Subversion para que pueda leer y escribir en esta carpeta.

$ sudo chown -R www-data:www-data /var/trac/projects/prac1

Ahora para acceder desde el navegador al manejador de trac solamente ingresamos desde un terminal el siguiente comando:

$ sudo tracd --port 8000 /var/trac/projects/prac1

Luego entramos a http://localhost:8000/prac1 y listo.


Enlasar Hudson con Trac:

Ya teniendo instalados correctamente nuestros repositorios de Subversion y Trac, y ya estan unidos correctamente hudson con subversion, ahora uniremos Hudson con trac.

Para proseguir es necesario tener el plugin “trac.hpi” este lo podemos descargar de la pagina principal de Hudson en el area de descargas.

Luego de descargarlo nos dirigimos a Hudson:

http://localhost:8080

y el “Manager Hudson” y en luego en “Manager Plugins” buscamos la pestaña “Advanced” y en “Upload Plugin” buscamos el plugin que acabamos de descargar, y por ultimo le damos click al botón de “Upload”.

Ahora nos vamos directo a las opciones de Configuración del proyecto hecho en Hudson:

Colocamos la dirección de nuestro repositorio de Trac en la parte de “Trac website”

http://localhost:8000/prac1

y listo, ya tenemos enlazados Hudson y Trac.




martes, 28 de abril de 2009

Troyanos....


Este es un tipo de ataque malicioso que se puede alojarse en la computadora y permitir el acceso a usuarios de una misma red o a travez de internet y recolectar y mostrar información y hasta llegar a controlar remotamente la computadora.

Pero, en ningún momento mencionamos algo sobre hacer daño o destruir algo en la computadora en la que esta alojada el troyano y es porque en si los troyanos, su finalidad no es esa, es solamente recolectar, mostrar y controlar remotamente y el trabajo de dañar y destruir de lo deja a otros como los virus y a los gusanos.


El nombre de Troyanos viene del ingles Trojan Hourse que en español es Caballo de Troya pero se les conoce mas por Troyanos, y este su nombre se derivo del mito de la Guerra de Troya mencionada de la mencionada Odisea. Ya que en la historia se menciona que soldados invadieron Troya escondiéndose en caballo que habían construido como un supuesto regalo para este pueblo pero ellos nos sabían que era lo que había por dentro de este famoso caballo. De igual manera los Troyanos pueden llegar a nuestra computadora por medio de archivos inofensivos como imágenes, archivos de musica, o pequeñas aplicaciones que no hacen lo que en realidad dice el manual de usuario, engañando así al usuario creando un pequeño canal de acceso remoto para un ladrón de información y poder conquistar su computadora así como en la historia.

Solamente los troyanos en si son infectivos, el verdadero mal se encuentra en la forma en que se use este programa y de quien lo use, ya que la información obtenida puede ser de gran valor como para extorsionar a alguien.


Partes de un Troyano:

Los Troyanos según Wiki están divididos de en 4 partes, en otras fuentes encontramos que los troyanos solamente se dividen en 2, básicamente la estructura de un troyano es la misma.


Partes principales:

Cliente: es el programa que envía las ordenes a la computadora infectada.

Servidor: recibe las ordenes del cliente y las realiza.


Complemento:

Editor: este programa nos permite cambiar las características de nuestro server (computadora infectada), como puerto, IP, inyección de datos, etc, etc, etc.

Librerías: regularmente son plugins que incorporan funcionalidad extra al troyano, estos pueden ser archivos con extención *.dll, pero no todos los troyanos hacen uso de librerías, regularmente los mas peligrosos no hacen uso de esto.


Tipo de conexión de los Troyanos:

Conexión Directa: su forma de conexión es de cliente a server, el cliente se conecta al server por medio del puerto que dejamos abierto en el momento de colocar el server en la maquina infectada, y por medio de la ip de la maquina infectada logramos comunicación del cliente con el server.

Conexión Inversa: ahora la conexión es de server a cliente, es una manera ingeniosa de atacar, si la maquina infectada es quien desea conectarse remotamente a otra maquina es menos probable que el firewall (o al menos la mayoría) detecte esta conexión con el cliente. Además estos no es necesario que se redirijan por puertos específicos gracias a esta característica.


Algunos troyanos mas conocidos:

Back Orifice

Back Orifice 2000

Bifrose

NetBus

Subseven

RemoteHak

Abacab

Downloader-EV

Pest Trap

Poison Ivy



Referencias:

Manual-Todo sobre los Troyanos

Troyanos.

Wikipedia: info sobre Troyanos.

domingo, 19 de abril de 2009

Una frase..

"Cuantas cosas perdemos por miedo a perder"

martes, 7 de abril de 2009

Un Cambio de Look.

Que tal muchades, al fin tuve algo de tiempo y aunque tengo que hacer, le dedique algo de tiempo al blog, ya le hacia falta un cambio de look.

XD

miércoles, 25 de marzo de 2009

Un sueño....

Hace tiempo, un día como cualquiera, me levante como a las 10 de la mañana, pero lo peculiar de esa mañana fue que me levante con mucha adrenalina.

Estaba en un gran aeropuerto, sentía cierta presión en mi pero no sabia exactamente que era, mi cuerpo desbordaba de ansias y en mi mente pasaban tantas cosas que no entendía nada. Camine hacia un gran pasillo con unas grandes ventanas, a un lado, 2 niños estaban jugando como si fuera el patio de su casa, uno corriendo al otro, me dio gracia como lo hacían, mientras tanto seguí caminando por el pasillo sin entender que hacia en tal lugar, me detuve en una de las ventanas y de pronto vi como despegaba un avión de pasajeros, y luego me recosté de espaldas a la ventana.

Vi a lo lejos una silueta que me resulto conocida, fue en ese momento cuando mi mente logro concentrarse, pero aun así seguía sin entender que era, poco a poco logre distinguir de quien era esa silueta, en realidad no estaba seguro si era quien pensaba, salí tras ella, cuando de pronto cruzamos miradas, esos fueron los segundos mas largos que he sentido, fueron interrumpidos hasta que por medio de señas me dice que la siga.

Cada ves se encontraba mas lejos, cruce toda la sala de espera corriendo que por poco fui atropellado por el encargado de equipaje, pero eso no me importo, trataba de no perderla de vista. De un momento a otro se detuvo frente a una puerta de metal, esta tenia 2 barrotes que lo atravesaban, allí estaba yo, a sus espaldas como a 5 pasos de ella, me acerque lentamente, como esperando una reacción, en realidad no se porque iba hacia ella. Cuando estaba a la par de ella la tome por los brazos, mi corazón latía muy rápido que casi lo escuchaba, al rozar su delicada piel me dí cuenta de quien era a quien seguía, de pronto escuche su suave voz, no entendía que era lo que me quería decir, pero sus ultimas palabras fueron, detrás de esta puerta cambiara todo...

De pronto los 2 abrimos esa puerta, una luz nos segó y escuchaba a lo lejos una vos que cada vez de hacia mas fuerte... vas a ir al a U al fin?????.

Desde entonces dejo con llave la puerta de mi cuarto para que no me despierten cuando no tengo que ir a la U.

martes, 17 de marzo de 2009

Tiempo

Entre tanto que hacer y cosas que han pasado me recordé esta canción. Acá se las dejo.



Cuando todo haya pasado
Y sea hora de contar
que sera lo mas preciado
que has de encontrar
ojala no te des cuenta
y sufras una decepcion
cuando veas que tu vida
fue un gran error

tiempo... tiempo
muchas veces me doy cuenta
que sufro una decepcion
haciendo siempre lo urgente en cada ocasion
me olvido de lo importante
y de las cosas de valor
y termino diciendo
el tiempo me falto
tiempo... tiempo...

(Coro)
hoy tengo tiempo de sentir el amor
hoy tengo tiempo de borrar el dolor
hoy tengo tiempo de un amigo ir a buscar
hoy tengo tiempo de amar a los demas

talvez hoy sea un buen dia
para recapacitar
y cambiar aquellas cosas
que no esten en su lugar
dale tiempo al corazon
dale la oportunidad
de sentir una caricia una vez mas

tiempo... tiempo...
hoy tengo tiempo de reir un poco mas
hoy tengo tiempo de la vida disfrutar
hoy tengo tiempo de saber lo que es mejor
hoy tengo tiempo de hablarle al corazon

sábado, 14 de febrero de 2009

Logical Volume Manager

Cada vez que alguien instala un sistema operativo, sea cual sea, le aparece la opción de crear espacios en el disco duro, o mejor dicho, Particiones. Si fuera en Windows regularmente se crean 2 particiones, una de ellas para el sistema operativo, programas a instalar, entre otros y la otra para los documentos, música, imágenes, y un sin numero de archivos que para el usuario le son importantes, pero no les a pasado que dejan muy poco espacio para una partición y desean cambiar la capacidad de este, suele ser algo frustrante.

Y aunque les empecé hablando de Windows, con lo anterior pueden tener cierta idea de lo que estaremos hablando de ahora en adelante, ya que esta entrada trata más sobre el manejador de volúmenes lógicos que los sistemas operativos Linux utilizan.

Empecemos con LVM:





En una computadora pueden tener un Disco duro, o dos Discos Duros, e incluso, para computadoras de oficina o del hogar pueden tener hasta 3 Discos Duros, ahora imagínense tener hasta diez Discos Duros en un solo equipo (bueno, esto se puede ver comúnmente en servidores), como lograríamos unir tantos discos duros e incluso particiones para que trabajen como uno solo.

Ya vimos el problema que puede surgir al no calcular bien el tamaño de una partición, pero...¿será que se puede solucionar esto?, Existen varios manejadores los cuales permiten esto, muchos de ellos facilitan el realizar este tipo de operaciones, pero ahora hablaremos de LVM lo puede hacer.

¿¿Que es lo que hace LVM??

Entre sus características principales están:

  • El redimensionar volúmenes Lógicos.
  • Redimensionar grupos Lógicos.
  • Instantáneas de sólo lectura
  • RAID0 de volúmenes lógicos

En si LVM nos permite manejar a voluntad el redimensionamiento de los discos y moverlos de la forma que se nos plazca, todo esto es gracias a este manejador, pero si esto fuera poco, además de hacer todo eso nos permite tener una vista de alto nivel sobre el almacenamiento de nuestra computadora y además le permite al Administrador del sistema crear volúmenes con nombres tales como "Mis Archivos", "Mis Tareas" o "Mis copias..de respaldo" XD, en vez de los nombre de los dispositivos físicos, sda o sdb .

¿Como podemos acceder a LVM?

Comandos:

  • pv (change, display, remove, create, move, resize, scan) para volúmenes físicos.
  • vg (convert, extend, reduce, scan, create, import, remove, split, change, display, merge, rename, export) para grupos de volumen.
  • lv (change, display, convert, extend, remove, rename, scan, create, reduce, resize) para volúmenes lógicos

Mmm, tenemos los comandos, ahora veamos como usarlos:

Para crear un nuevo volumen Físico:

pvcreate /dev/hda2

pvcreate /dve/sda1

y con eso ya tenemos creados 2 volúmenes mas en nuestro sistema de almacenamiento.

Pero si deseamos ver el listado de los volúmenes físicos que poseemos, esto lo podemos hacer con "pvscan", pero si necesitamos información mas detallada ingresemos entonces "pvdisplay".



Para crear un grupo de volumen ingresaremos: vgcreate Prueba /dev/sda1.

En fin, estos son unos comandos que se pueden usar para gestionar nuestros dispositivos de almacenamiento.

Esta fue una vista rapida a lo que es LVM (Logical Volume Manager).

Link's Consultados:





domingo, 18 de enero de 2009

Toca a tu Puerta



Cantares 5: 2 
“Yo dormía, pero mi corazón velaba. 
Es la voz de mi amado que llama:
 Ábreme, hermana mía, amiga mía, 
paloma mía, perfecta mía, 
Porque mi cabeza está llena de rocío, 
Mis cabellos de las gotas de la noche. 

Me he desnudado de mi ropa; 
¿cómo me he de vestir?
He lavado mis pies; 
¿cómo los he de ensuciar? 

Mi amado metió su mano por la ventanilla,
Y mi corazón se conmovió dentro de mí. 
Yo me levanté para abrir a mi amado, 
Y mis manos gotearon mirra, 
Y mis dedos mirra, 
que corría
Sobre la manecilla del cerrojo.

Abrí yo a mi amado;
Pero mi amado se había ido, 
había ya pasado; 
Y tras su hablar salió mi alma. 
Lo busqué, y no lo hallé;
Lo llamé, y no me respondió” 

sábado, 11 de octubre de 2008

En la cima......

Cuatro jovenes, un solo reto, una misma vision, programar en los lugares mas insolitos de nuestra gran Universidad, donde ningun ser humano a programado antes....



Un dia como cualquier otro estos cuatro amigos decidieron cambiar de ambiente, salir de lo comun y aprovechar la semana cultural que vivia la nuestra Honorable Universidad de San Carlos, nadie de los cuatro tenia en mente lo que el destino les tenia preparados.

Ellos, mientras observaban lo que sucedia alrededor, caminaban y caminaban viendo todas cosas que habian por su camino, miraban collares, pulseras, recuerdos de Antigua Guatemala ("en la San Carlos"), gente expresando sus ideas, ventas de discos de la petapa solo que ahora frente la biblioteca central que por cierto, tenian Suse 11, la verdad.... que nivel.

Pero en su camino no se esperaban encontrarse que un edificio en particular, vieron algo curioso dentro y decidieron entrar...., no estubieron mucho tiempo y salieron para seguir con su travesia en ese mundo, cuando a alguien se le ocurrio y bueno, las siguientes imagenes cuentan por si solas la historia







































































































Pero ante todo:





esto y mas en fotos