Usuarios en Linea Actualmente: 2 Users Online

Cronicas de un desarrollador

↑ Grab this Headline Animator

Asterisk IPPBX

June 22, 2008 on 7:10 am | In Linux, Tecnologia | 1 Comment | 58 views

Debo de reconocer que escuche muchas veces sobre este proyecto y nunca lo tome en cuenta, sera que por el tipo desarrollos no habia requerido nada por el estilo, no soy ajeno al mundo de la telefonia y conmutadores, en algun momento me certifique como Avaya System Enginner , debo reconocer que me gusta mucho aprender de todo lo referente a tecnologia y comunicaciones, recientemente en nuestra pequeña oficina de monterrey nos dimos cuenta que contar con algunos telefonos y no tener un conmutador propiamente instalado nos estaba dando mucha guerra, ya que eso de “Pasame el telefono” o “no alcance a llegar a contestar”, estaba realmente dando mucha lata, la mayoria de nosostros usamos SkyPE con un numero local asignado a nuestra cuenta y eso nos permite contestar llamadas en la laptop, pero el numero telefonico tradicional, sigue sonando, y nosotros por descuido no lo atendemos como debe de ser.

Me dispuse a cotizar e investigar una solucion que implicara un conmutador, algo sencillo, mi primera idea fue una Panasonic TDX que son los mas tipicos y clasicos, su precio no considero sea algo caro, pero seamos realistas es usar tecnologia que ya anda en las ultimas.

Pero porque en las ultimas, bueno lo de hoy es VoIP, pero no como muchos la conocen, no me refiero a SkyPE ni a otro tipo de programas que son un puente via internet a servicios telefonicos, me refiero a propiamente usar tecnologia con telefonos IP, Conmutador IP, Voicemail, CallCenter, pero que todo funcione bajo la infraestructura de una red IP y con un enlace a las lineas telefonicas tradicionales o las mas recientes digitales como un E1 de voz que hoy en dia compañias como Telmex, Alestras y Axtel entregan a oficinas de medianas a grandes.

Ahi es donde Asterisk hace su triunfal aparicion, fui a ver varios proveedores y muchos ya ofrecen soluciones de Conmutadores IP, los precios son realmente mas accesibles que comprar lo tradicional, pero me llamo la atencion que todos me requirieron un equipo con Linux, me sorprendio ya que la mayoria de las empresas aun ven Linux con cierto temor, y que un proveedor te lo solicite era ya algo admirable, investigue sus productos y ohh gran sorpresa todos sin excepcion estan basados en Asterisk, es mas de hecho es Asterisk con varios Addons y scripts personalizados.

¿Pero que jijos es Asterisk?
Asterisk es un software desarrollado bajo la licencia GPL, que tiene entre varias de sus bondades cumplir con todos los requisitos de un gran conmutador basado en hardware, solo te pide un equipo de computo dedicado, una tarjeta Digium(Que es basicamente para conectarle las lineas telefonicas) y una conexion a una red de TCP/IP.

El ahorro en costos es grande, realmente grande, la inversion junto con el equipo y la tarjeta no llegan a ser de mas de 500 USD, y las ventajas de poder tener una infraestructura que es tan movible como una red local es muy amplia, a eso agreguenle que puedes tener tu extension en cualquier parte del mundo usando un Softphone con protocolo SIP y listo, las posibilidades son enormes e incluso se pueden tener varios servidores de Asterisk en diferentes ciudades y enlazarlos via internet y asi conectar extensiones en diferentes ubicaciones geograficas y no pagar nada de costos de larga distancia, para los que han vivido el hecho de ver sus facturas telefonicas elevadisimas esto representa una solucion ideal.

Pero la maravilla no termina ahi, hoy en dia existen muchos proveedores de telefonia SIP, que ellos te dan acceso via internet a su servidor y con eso conectar tu sistema Asterisk y tener Telefonia IP 100% sin usar lineas convencionales.

Les dejo estos enlaces para que los interesados se vayan involucrando y vean todas sus bondades

http://www.asterisk.org <- Pagina Oficial
http://www.trixbox.org/ <- implementacion lista para usarse
http://www.asterisk-la.org/ <- Asterisk Latinoamerica

Saludos

Dante Robles

Firefox 3 Download Day 17 Junio 2008

June 17, 2008 on 7:22 am | In Tecnologia | 1 Comment | 60 views

Bueno pues para que no se me pase ya que yo apoyo mucho a este maravilloso navegador, la gente de la fundacion Mozilla esta sacando el dia de hoy la version Firefox 3 que tiene una cantidad de mejoras en su diseño y usabilidad, se han propuesto tambien romper un record mundial de la mayor cantidad de descargas en 24 horas

Download Day - Spanish

Este es parte de los banner a la pagina de Spreadfirefox donde se esta realizando este movimiento, asi que no le piensen el dia de hoy 17 de Junio del 2008 desde las 10:00 a.m. en Mexico estara disponible , descarguen este genial navegador y apoyen el record guinness

[Actualizacion 17-Junio-2008 13:00 p.m.]
No se bien que paso con el sitio de SpreadFirefox supongo que se saturo por la cantidad de descargas como quiera aqui les dejo un link para descargar FireFox 3 en Ingles desde los mirrors de Mozilla

Firefox 3-Windows

Firefox 3-Linux

Saludos

Dante Robles

Disponible Capitulo 14 de Devil Inc.

June 17, 2008 on 6:45 am | In Personal | 1 Comment | 33 views

Pareciera raro pero me estoy esforzando en no tardarme tanto en escribir mas capitulos del libro, en fin pues ya esta listo el Capitulo 14


Devil Inc.

Como siempre la direccion ya conocida es http://www.devilinc.net/ les agradeceria sus comentarios y disfruten la novela

Saludos

Dante

Feliz dia del Padre 2008

June 15, 2008 on 7:42 am | In Personal | 1 Comment | 110 views

Bueno pues para los lectores que siguen este blog, y que tienen la dicha de ser papas pues hoy como cada tercer domingo de junio de cada año se celebra el dia del padre, asi que sin mas Felicidades.

Ser padre es una responsabilidad que se adquiere desde el mismisisismo momento que se les avisa que un bebe viene en camino y se consolida al momento de que es hijo nace, cierto es el hecho que no se nos da un manual , guia, curso o certificacion de como ser padres, vamos aprendiendo sobre la marcha y en muchas ocasiones somos guiados por nuestras propias experiencias como hijos que se ven reflejadas ahora en nuestro papel de padres.

Yo me converti en papa un 13 de Julio del 2000 a las 15:20 de la tarde para ser mas precisos, conoci la cara de quien hoy tiene toda mi atencion y cariño , mi hija Sofia, debo reconocer que sentia cierto grado de preocupacion por saber que debia hacer, como debia comportarme, ¿Deberia ser consentidor?, ¿Deberia ser estricto?,¿Deberia sacar un seguro para sus estudios universitarios?, carajo ninguna respuesta fue contestada ni hoy que estoy a casi 8 años de ese momento, decidi dejar que las cosas sucedieran para ir viendo como poco a poco se acomodaban como debia ser, ¿resultado? jejeje pues las cosas salieron bien, no me puedo adjudicar ser el mejor padre del mundo, no no eso no es cierto, pero si me puedo adjudicar que soy el hombre que mas quiere a mi hija si es si.

En mi infancia tuve dos grandes ejemplos de lo que significa ser padre, uno el que me llevo por los caminos de la comprension, cariño, amor y fe fue el ejemplo de mi Abuelo Materno Don Rosendo Vazquez(Q.E.P.D.) otro que pareceria casi el polo opuesto pero no negativo, que me enseño el valor del trabajo, la dedicacion, alcanzar las metas y no rendirse es el de mi padre Luis Julio Robles Viña (Q.E.P.D.), no soy la mezcla de los dos como padre, eso seria algo genial, pero no no soy asi, tome algo de los dos eso si porque fueron ellos quien dejaron sus enseñanzas en mi, para convertirme en una persona al menos con buenos principios, de ahi yo solo tuve que aprender a ser padre, cosa que realmente disfruto, digo tengo mil anecdotas con mi hija como tratar de dormirla cuando era una bebe de apenas unas semanas, cambiar un pañal, bañarla, debo reconocer que ese trabajo solo lo hice cuando fue la ultima opcion jejeje pero lo hice con gusto y orgullo, hoy que mi hija es un poco mas grande me toca la dificil tarea de responder preguntas demasiado capciosas por la curiosidad que los niños de 7 años tienen hoy en dia pero me doy el gusto de responderlas para que entienda lo que su curiosidad busca y poder ser una guia buena para ella.

Yo creo que ser padre es de las mejores cosas que te pueden pasar.

Para todos los que ya lo son felicidades, para los que estan proximos a ser padres, pues felicidades y no se preocupen por nada y para los que aun no lo son, no se mortifiquen cuando les toque veran que es increible.

No digo que ser padre sea algo facil, al contrario es una alta responsabilidad pero ……….. el secreto esta en saber aceptar esa responsabilidad con gusto.

Saludos y Feliz dia del Padre

Dante Robles

MySQL-Proxy Herramienta para monitorear y optimizar tus consultas y querys

June 12, 2008 on 5:50 am | In Bases de Datos | No Comments | 100 views

Descubri esta herramienta paseandome por el sitio para desarrolladores de MySQL, no es novedad que me agrade mucho el uso de esta base de datos, andaba dando una vuelta para ver que habia de herramientas para mejorar desempeños de este buen gestor de base de datos y me tope con esta que tiene un sin fin de posibilidades respecto a lo que puede ofrecer.

Empezemos con definir ¿que es un proxy? de su definicion en ingles proxy - a person who speaks or acts on one’s behalf que signfica Persona que actua o habla en nombre de otra

En escencia esta herramienta se situa entre nuestra aplicacion que use la base de datos de MySQL y el Servidor de MySQL, el objetivo es que antes de que llegue al servidor poder hacer operaciones con la consulta o comando SQL que se esta enviando al gestor de base de datos, pero que podriamos hacer con eso:

1.- Hacer un Log de todas las consultas que recibe el Servidor
2.- Denegar consultas peligrosas que puedan dañar nuestra base de datos
3.- Generar Alias de comandos comunes por ejemplo SLE se podria convertir en SELECT
4.- Balancear la carga entre varios servidores de MySQL en un esquema de Master/Slave
5.- Dar prioridad a ciertas consultas para acelerar la respuesta del servidor

Estas son solo algunas de las posibles aplicaciones que se le podrian dar a esta herramienta, debo de aclarar que aun se encuentra en estado alpha es decir es un release demasiado pronto y puede llegar a no funcionar pertinentemente, hasta donde yo lo he podido explotar funciona bien y decentemente, esta herramienta tambien implementa un interprete de un lenguaje llamado LUA que es conocido por su sencillez y facilidad de uso.

Veamos un ejemplo de un script en LUA que guardar todas nuestras consultas en un archivo llamado mysql.log

 assert(proxy.PROXY_VERSION >= 0x00600,
  "you need at least mysql-proxy 0.6.0 to run this module")

 local log_file = os.getenv("PROXY_LOG_FILE")
 if (log_file == nil) then
   log_file = "mysql.log"
 end

 local fh = io.open(log_file, "a+")
 local query = "";

function read_query( packet )
   if string.byte(packet) == proxy.COM_QUERY then
     query = string.sub(packet, 2)
     proxy.queries:append(1, packet )
     return proxy.PROXY_SEND_QUERY
   else
       query = ""
   end
 end

function read_query_result (inj)
   local row_count = 0
   local res = assert(inj.resultset)
   local num_cols = string.byte(res.raw, 1)
   if num_cols > 0 and num_cols < 255 then
     for row in inj.resultset.rows do
       row_count = row_count + 1
     end
   end
   local error_status =""
   if res.query_status and (res.query_status < 0 ) then
       error_status = "[ERR]"
   end
   if (res.affected_rows) then
       row_count = res.affected_rows
   end
   --
   -- write the query, adding the number of retrieved rows
   --
   fh:write( string.format("%s| %6d |--| %s| {%d} %s\n",
     os.date('%Y-%m-%d %H:%M:%S'),
     proxy.connection.server["thread_id"],
     query,
     row_count,
     error_status))
   fh:flush()
 end

Este ejemplo lo tome de este articulo Getting started with MySQL-Proxy les recomiendo se den una vuelta por ahi para que vean la informacion que dan.

Por ultimo les recomiendo tambien que prueben el script LUA que les puse, los que son desarrolladores se sorprenderan de lo beneficioso que es la informacion que se obtiene de las consultas, ya que les permitira ver que es lo que realmente hace el server de MySQL y como mejorar sus consultas o sentencias SQL

Saludos

Dante Robles

Disponible Capitulo 13 de Devil Inc.

June 4, 2008 on 5:31 am | In Personal | 2 Comments | 46 views

Ya esta listo el capitulo 13 de la novela Devil Inc. como siempre los invito a que visiten el sitio , lean la historia y me den sus opiniones

????????Devil Inc.

La direccion ya conocida es Devil Inc.

Saludos

Dante

Motores de almacenamiento de MySQL y tipos de tablas

June 3, 2008 on 3:36 am | In Bases de Datos | No Comments | 66 views

Recientemente estuve buscando varias opciones sencillas para consultar tablas de otro servidor y acceder a su informacion en otro, habia varias opciones, las logicas eran Replicacion de Datos, pero implicaba tener configurados esquemas de Master/Slave y dado que solo queria algunas tablas y no toda la base de datos la descarte, la otra era Row Replication pero esa opcion solo esta disponible en las versiones de 5.1 que aun no estan liberadas al 100% (Se encuentra en RC pero soy muy paranoico), otra opcion era crear conexiones de en distincas instancias pero eso ensuciaria demasiado el codigo y no permitiria darle un buen mantenimiento cuando se necesitara, total bien es dicho primero lee las instrucciones, me dispuse a darle una leida a la documentacion en linea de MySQL en su sitio para desarrolladores que es http://dev.mysql.com ahi me encontre la seccion de Storage Engine del Capitulo 14 http://dev.mysql.com/doc/refman/5.0/es/storage-engines.html

En este capitulo del Manual del MySQL explican los distintos tipos de engines que se pueden usar en las tablas de MySQL, tipicamente solo se usan el MyISAM y el InnoDB pero hay mas opciones que rara vez se exploran, veamos

  • MyISAM es el motor por excelencia en MySQL, reconocido por su velocidad de acceso y por su capacidad para manejar la informacion , no soporta Transacciones
  • MERGE Se puede emplear para unir dos tablas en una sola de este tipo, siempre y cuando ambas tablas tengan el mismo esquema
  • MEMORY como su nombre lo dice son tablas que se crean en Memoria, se les suele utilizar para poner informacion que se pueda acceder rapidamente ya que como es sabido el acceso a la RAM es mas rapido que al disco
  • BDBHeredada de la vieja guardia pero no por ello es poco util es un tipo de datos que permite transacciones, indexacion e integridad referencial
  • EXAMPLE Realmente este engine no sirve mas que para crear tablas, pero no puedes escribir en estas, se usa como lo dice de ejemplo para que se pueda ver como quedan los esquemas o crear un engine nuevo a partir de el
  • BLACKHOLE es el equivalente al /dev/null de Unix, todo lo que mandes a una tabla de este tipo se va a la nada (mmm realmente no se para que) se dice que se puede usar para que registres logs de actividades, pero aun no he descubierto como
  • CSV Este me llamo la atencion pero depende para que lo uses, este tipo de engine te crea una tabla y un archivo en formato CSV(Comma Separated Value) que es facilmente leido por Excel, Calc y otras hojas de calculo, no soporta indices, transacciones ni soñarlo y su acceso es secuencial
  • InnoDBMotor recomendado para soporte a transacciones, indices, integridad referencial y demas lindezas del mundo de bases de datos, es muy bueno pero como todo en esta vida no es la perfeccion ya que se sacrifica velocidad por integridad
  • NDB Es el tipo de tablas usado en los sistemas de Cluster de MySQL, su uso es exclusivo para este esquema
  • FEDERATED Este es basicamente un Mapeo de una tabla de otro servidor en tu servidor local, puedes hacer INSERT,UPDATE,SELECT y DELETE, no puedes usar ALTER ni DROP, toda la informacion que manipules se reflejara en la tabla del servidor Remoto, muy util para no tener tablas extras en tu aplicacion y consolidar en un servidor todos los datos, desventajas te quedas sin conexion ,te quedas sin acceso a la tabla

Como veran el manejo del engine FEDERATED cumplia con mi necesidad, con la premisa de que tenia que estar siempre en linea , de no ser asi este asunto no hiba a funcionar, me parecio aceptable asi que estoy haciendo pruebas, les dejo unos ejemplos para los que les interesen

En el servidor remoto o el que va guardar los datos creen una tabla asi, suponiendo que la base de datos se llama test y la tabla se llamara datos

CREATE TABLE  `test`.`datos` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `nombre` varchar(45) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM;

Ahora en el servidor donde se hara el engine FEDERATED que accedera remotamente a esos datos hagan algo asi:

CREATE TABLE  `test`.`datos` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `nombre` varchar(45) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=FEDERATED
CONNECTION='mysql://usera_db:pass_db@hostname:3306/test/datos';

Ya listas las tablas en los dos servidores empiezen a crear registros en ambos lados y veran como lo que se agrega en el servidor remoto se refleja en el servidor que accede y viceversa, lo que se agrega en el servidor con la tabla FEDERATED se refleja en el remoto.

Como ven las aplicaciones a este tipo de datos pueden ser muy practicas, si se dispone de un esquema de alta disponibilidad en conexiones, debo aclarar que no todo en esta vida es perfecto hay algunos puntos referentes a la seguridad que la gente de MySQL siempre hace mencion, al crear la tabla FEDERATED, se graba en el esquema en texto plano el user y el pass de la base de datos remota, esto es considerado por los expertos en seguridad como un grave punto de vulnerabilidad, asi que tomenlo en cuenta

Saludos

Dante

Fedora 9, VirtualBox 1.6 y el ambiente hibrido

May 29, 2008 on 12:40 am | In Linux | 4 Comments | 633 views

Bueno pues el dia de hoy junto con un buen amigo Omar Cobos de Pragmatic Blog nos decidimos a que experimentariamos en su laptop con la mas reciente y flamante version de Fedora 9, somos unos usuarios muy apegados a esta distribucion ya que como desarrolladores cumple muy bien nuestras necesidades, ademas de que ya le tenemos bien tomada la medida a todos los pormenores que se puedan presentar.

La computadora de Omar tiene el siguiente Hardware

  • Dell M90
  • Intel Core Duo 2.0 Ghz
  • 1 GB RAM
  • nVidia Quadro FX de 256MB PCIExpress
  • Disco Duro SATA de 120 GB
  • Wireless Dell Mini-PCI
  • BroadCom Gigabit Ethernet
  • Un hermoso pero pesado display de 17.2″

Como veran es una computador portable de buen desempeño y que no se raja a la hora de compilar y ejecutar diferentes aplicaciones.

Que hicimos, bueno despues de 3 intentos de grabar el DVD de Fedora 9, lo logramos ahi les doy una recomendacion si pueden graben a una velocidad baja el DVD, se tarda bastante pero queda bien, despues de nuestro pertinente respaldo de datos(No vaya siendo el chamuco) procedimos a insertar el DVD e iniciar el tipico proceso de instalacion de Fedora, debo recalcar que el nuevo Artwork de Anaconda el instalador que usa Fedora es bastante agradable, Omar se puso a seleccionar paqueteria a su necesidad especifica(cosa que tomo su tiempo) y despues a instalar y esperar.

En lo que Fedora se instalaba le comente a Omar de un proyecto OpenSource de Virtualizacion de Sistemas Operativos, que ultimamente esta sonando bastante, sobre todo en los usuarios de Ubuntu, este proyecto es VirtualBox que tiene varias caracteristicas que lo hacen llamativo, es ligero, facil de instalar(si lees el manual bien) y tiene una caracteristica genial que se llama Seamless Windows, que basicamente en lugar de ejecutar la maquina virtual en una ventana, te permite sacar las aplicaciones de la maquina virtual y las integra en el escritorio de Linux, esto solo lo habia visto en un software para Mac que se llama VMware Fusion y Parallels Workstation que permite hacer lo que les menciono, no lo habia visto en otro lado y al parecer VirtualBox lo hace, es OpenSource y es genial.

Terminamos la Instalacion de Fedora 9 y Omar se puso a hacer la obligada actualizacion de seguridad(Por aquello de las dudas), tomo su tiempo pero al fin termino y me pidio que si de favor le podia instalar tan genial Software(yo y mi bocota) bueno pues me dirigi a http://www.virtualbox.org luego en la seccion de Downloads me dirigio a la pagina de Sun Microsystem ahi seleccione Fedora 9 - i386 me descargo el archivo RPM de nombre VirtualBox-1.6.0_30421_fedora9-1.i586.rpm lo baje a la Carpeta Home de Fedora y abri como siempre con mi obsesion la linea de comandos (Es que me pone sentimental :P) ahi cambie al usuario root con su - y despues teclee

rpm -ihv VirtualBox-1.6.0_30421_fedora9-1.i586.rpm

Zaz me marco un error de que no podia encontrar un modulo que se acoplara al kernel de la distribucion , despues de maldecir algunos bits y bytes puse el siguiente comando para resolver semejante necesidad:

yum install kernel-devel gcc

con lo que instale el codigo del kernel y el compilador gcc para poder hacer cuanto fuera necesario, como practica comun y para no ensuciar mucho la instalacion, desinstale el rpm con este comando

rpm -e VirtualBox

y ya desinstalado y con las dependencias listas volvia poner:

rpm -ihv VirtualBox-1.6.0_30421_fedora9-1.i586.rpm

Listo ya se dejo instalar sin ningun problema ni contratiempo.

Ya teniamos el Fedora 9 y el VirtualBox Listo que hicimos, nos salimos a fumar un cigarro y despues instalamos el Windows XP Professional en el VirtualBox, eso es sencillo tiene un Wizard integrado que te va preguntando por pasos que es lo que se necesita, la instalacion de XP no la voy a describir, todos en algun momento de nuestras vidas hemos lidiado con eso, termino la instalacion de XP, despues procedimos a instalarle a maquina virtual las VirtualBox Addition, como la mayoria de las aplicaciones de virtualizacion, pense que solo eran controladores para mejorar el desempeño, pues si eso son, pero le agregaron la maravilla de que con solo pulsar la tecla CTRL + L Woowwww la ventana de la aplicacion activa en la maquina virtual literalmente salta al escritorio de Fedora y coloca inmediatamente la barra de Windows dentro del escritorio y tenemos ahora acceso a las aplicaciones de la Maquina Virtual desde Linux como si una ventana mas fuera.

A lo mejor no parece tan maravillos pero creanme para uno como desarrollador es un gran alivio

Espero les sea util

Saludos

Dante Robles

Disponible Capitulo 12 de Devil Inc.

May 20, 2008 on 6:26 am | In Personal | 1 Comment | 65 views

Bueno despues de muchos contratiempos y retrasos, ya esta listo el capitulo 12 de la novela Devil Inc. como siempre los invito a que visiten el sitio , lean la historia y me den sus opiniones

Devil Inc.

La direccion ya conocida es Devil Inc.

Saludos

Dante

Graphviz Herramienta de Diagramas

May 14, 2008 on 5:31 pm | In Desarrollo | 1 Comment | 130 views

Como soy muy inquieto, hace unos dias me dio por querer hacer diagramas de informacion obtenida de una base de datos, estuve buscando opciones, la mas sencilla era hacer un objeto Flash y pasarle parametros con ActionScript, pero ….. no soy muy fan de Flash, la otra era usar un objeto DCOM y generar una imagen con algun lenguaje de Microsoft, mmmm tampoco era una opcion que me gustara, hace como 8 años conoci un proyecto OpenSource de AT&T que se llama Graphviz, decidi darle una nueva revisada, y sorpresa cumple con mi capricho y ademas hay varias API que la explotan, les dejo algunos ejemplos de lo que se puede hacer con esta herramienta

Graphviz Unix history

El codigo Graphviz para hacer el dibujo anterior es

/* courtesy Ian Darwin and Geoff Collyer, Softquad Inc. */
digraph unix {
	size="6,6";
	node [color=lightblue2, style=filled];
	“5th Edition” -> “6th Edition”;
	“5th Edition” -> “PWB 1.0″;
	“6th Edition” -> “LSX”;
	“6th Edition” -> “1 BSD”;
	“6th Edition” -> “Mini Unix”;
	“6th Edition” -> “Wollongong”;
	“6th Edition” -> “Interdata”;
	“Interdata” -> “Unix/TS 3.0″;
	“Interdata” -> “PWB 2.0″;
	“Interdata” -> “7th Edition”;
	“7th Edition” -> “8th Edition”;
	“7th Edition” -> “32V”;
	“7th Edition” -> “V7M”;
	“7th Edition” -> “Ultrix-11″;
	“7th Edition” -> “Xenix”;
	“7th Edition” -> “UniPlus+”;
	“V7M” -> “Ultrix-11″;
	“8th Edition” -> “9th Edition”;
	“1 BSD” -> “2 BSD”;
	“2 BSD” -> “2.8 BSD”;
	“2.8 BSD” -> “Ultrix-11″;
	“2.8 BSD” -> “2.9 BSD”;
	“32V” -> “3 BSD”;
	“3 BSD” -> “4 BSD”;
	“4 BSD” -> “4.1 BSD”;
	“4.1 BSD” -> “4.2 BSD”;
	“4.1 BSD” -> “2.8 BSD”;
	“4.1 BSD” -> “8th Edition”;
	“4.2 BSD” -> “4.3 BSD”;
	“4.2 BSD” -> “Ultrix-32″;
	“PWB 1.0″ -> “PWB 1.2″;
	“PWB 1.0″ -> “USG 1.0″;
	“PWB 1.2″ -> “PWB 2.0″;
	“USG 1.0″ -> “CB Unix 1″;
	“USG 1.0″ -> “USG 2.0″;
	“CB Unix 1″ -> “CB Unix 2″;
	“CB Unix 2″ ->?????? “CB Unix 3″;
	“CB Unix 3″ -> “Unix/TS++”;
	“CB Unix 3″ -> “PDP-11 Sys V”;
	“USG 2.0″ -> “USG 3.0″;
	“USG 3.0″ -> “Unix/TS 3.0″;
	“PWB 2.0″ -> “Unix/TS 3.0″;
	“Unix/TS 1.0″ -> “Unix/TS 3.0″;
	“Unix/TS 3.0″ -> “TS 4.0″;
	“Unix/TS++” -> “TS 4.0″;
	“CB Unix 3″ -> “TS 4.0″;
	“TS 4.0″ -> “System V.0″;
	“System V.0″ -> “System V.2″;
	“System V.2″ -> “System V.3″;
}

Se usa pasandole parametros a la linea de comandos, pero hay muchas maneras con PHP,ASP y otros lenguajes de hacer diagramas al vuelo

http://www.graphviz.org Este es su sitio visitenlo y vean las enormes posibilidades que ofrece

Saludos

Next Page »


Dante Robles - Cronicas de un Desarrollador (y como no morir en el intento)
Entries and comments feeds. Valid XHTML and CSS. ^Top^