Atix18
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Atix18

on

  • 1,063 views

Revista de software libre Atix

Revista de software libre Atix

Statistics

Views

Total Views
1,063
Views on SlideShare
1,063
Embed Views
0

Actions

Likes
0
Downloads
8
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Atix18 Document Transcript

  • 1. Dirección y Coordinación GeneralEsteban Saavedra López (esteban.saavedra@atixlibre.org)Diseño y Maquetación Jenny Saavedra López (jenny.saavedra@atixlibre.org)Esteban Saavedra López (esteban.saavedra@atixlibre.org)Revisiones NoticiasEsteban Saavedra López Jenny Saavedra LópezJenny Saavedra López Lucy Ayarde RomeroAutores FrecuentesEsteban Saavedra López Martín MárquezJoseph Sandoval Renzo MartínezMario Carrion Rafael RendónHerramientasLa edición de esta revista fue realizada de forma integra haciendo uso de SoftwareLibre
  • 2. Un nuevo año, un nuevo desafío; lastimosamente por una serie de inconvenientesnuestra revista no se publico con la frecuencia que se tenia acostumbrado, peroesperamos que es nuevo año sea el que marque el retorno de nuestra continuidaden las publicaciones de los distintos números.Libertad es proteger lo nuestro, un título con el que deseamos expresar cuanimportante es el cuidar lo nuestro, lo que nos rodea, nuestra familia, nuestro hogar,nuestro mundo, ahora más que nunca cuando atravesamos una serie de cambiosen el accionar de nuestro mundo, es cuando mayor empeño debemos poner encolaborar a que este siga brindándonos su calor, su belleza y sobre todo lasatisfacción de vivir.Los profesionales técnicos debemos trabajar en hacer de este mundo cada día unmundo mejor, dejando de lado el egoísmo y sobre todo trabajando en compartirnuestro conocimiento para el bien de todos y no solo de algunos pocos.Con este primer número del 2011, queremos renovar nuestro compromiso de seguirbrindando un instrumento que permita la interacción a todos los amantes de lalibertad y la tecnología, seguros estamos que pondremos nuestro mayor esfuerzo enlograrlo, pero así mismo solicitar vuestra ayuda en la difusión de este nobleemprendimiento y así mismo invitar a ser parte del mismo. Libertad es proteger lo nuestro Bienvenidos a nuestro décimo octavo número Esteban Saavedra López Presidente Fundación AtixLibre
  • 3. Una alternativa libre pararepresentar la informaciónen la Web: Las ontologíasEn la actualidad, las ontologías han ganado espacio en muchos de los campos deinvestigación de la informática como una alternativa eficaz de representación de lainformación y base para el razonamiento sobre el conocimiento almacenado. Por lasfacilidades que brindan, la sencillez de las metodologías para su desarrollo, lascaracterísticas de los lenguajes para su expresión y las herramientas para suelaboración, constituyen una alternativa al alcance de todos. El objetivo fundamental deeste trabajo es presentar de forma resumida y rápida, las ventajas de las ontologíascomo una alternativa libre para la representación y el subsecuente razonamiento sobreel conocimiento.Introducción gran medida el proceso de búsqueda en la red de redes.Desde mediados de los 90 y durante la Como formas de representación delprimera década de este siglo XXI hemos sido conocimiento presentan una estructuratestigos del auge de una nueva forma de sencilla (en su forma más simple) consistenterepresentación del conocimiento: las en una taxonomía de clases que representanontologías. Aunque se tenga un concepto los conceptos asociados a un dominioinformático formal de una ontología como específico. Se definen además, atributos y“una especificación explícita de una relaciones entre las clases, así como reglas oconceptualización” (Gruber, 1993), y que axiomas que rigen el comportamiento. Endesde su surgimiento la idea inicial era lograr muchos casos, las ontologías cuentan conuna homogenización entre los diferentes individuos o instancias de las clasesconceptos que manejaban personas y especificadas para enriquecer elaplicaciones inteligentes en la Web conocimiento almacenado. Existen(fundamentalmente), las ontologías han clasificaciones asociadas a la estructura y elganado espacio en muchos de los campos uso de las ontologías y además ende investigación de la informática en la dependencia de su formalidad. En un análisisactualidad como una alternativa eficaz de un poco más minucioso, las ontologías serepresentación de la información y base para pueden clasificar usando disímiles criterios,el razonamiento sobre el conocimiento como los explicados en (Ramos y Núñez,almacenado. 2007). Para la representación de ontologías seDesarrollo utilizan RDF (Resource DescriptionComo base fundamental de la Web Framework) y OWL (Ontology WebSemántica, las ontologías pretenden Languaje). RDF es un modelo estándar paraconvertirse en una fuente de conocimiento la representación e intercambio de datos enaccesible no solo a personas, sino también a la Web, basado en triplas de la forma sujeto –aplicaciones inteligentes y motores de predicado – objeto; para una forma sencillabúsqueda en internet, de forma tal que la de representación de la información y eninformación disponible pueda ser enriquecida URIs (Uniform Resource Identifier) parade manera semántica, lo que mejoraría en asociar información a cada elemento de la tripla. Un ejemplo pudiera ser: María disfruta
  • 4. la comida italiana, en RDF se representaría desarrollada en el Centro de Investigacionesde la forma: sujeto (María) - predicado de Informática Biomédica, en Stanford,(disfruta) - objeto (la comida italiana). Por California. Es un editor para ontologías, desupuesto utilizando los URIs se puede código abierto, gratis que puede serenriquecer esto con mucha más información. descargado online desde su sitio oficial, asíRDF permite una serialización a XML (W3C, como un conjunto de plug-ins para mejorar2004), debido a que es un modelo y no como sus capacidades. Protégé permite el diseñotal un formato, lo que permite que la de ontologías basadas en RDF, OWL y OWLinformación almacenada pueda ser 2, consultas SPARQL sobre los datos,interpretada fácilmente como un XML por los razonamiento sobre datos utilizandosistemas. numerosos razonadores para ontologías y brindando la posibilidad de integrar otros nuevos. Permite además integrar e importar ontologías existentes, integración de plug-ins para minería de texto, importar datos desde bases de datos y otros. Figura. 1 Ejemplo de grafo RDF ConclusionesPor otro lado, OWL (W3C, 2007) es un Desde su propia concepción, las ontologíaslenguaje pensado para ontologías Web han perseguido el propósito de la(como sus siglas en inglés indican) y tiene disponibilidad de la información, launa capacidad de representación semántica interoperabilidad entre aplicaciones y elsuperior a RDF. Su creación se centra acceso abierto y libre a recursosfundamentalmente en la idea de crear compartidos. Sus aplicaciones se extiendenfacilidades para la representación de desde el área de la medicina, el comercio, losinformación contenida en la WWW, de Sistemas de Información Geográfica, lamanera que sea mejor interpretada por las Inteligencia Artificial, la aeronáutica y muchasmáquinas incorporando tareas de otras áreas claves que necesitan altarazonamiento sobre los datos. disponibilidad de información y capacidad predictiva y de razonamiento sobre datosAmbas representaciones, tanto RDF como almacenados. Por las características de losOWL, están basadas en la capacidad de lenguajes para su expresión y lasrepresentación de XML, por lo que herramientas para su desarrollo, constituyenconstituyen una alternativa viable y libre para una alternativa al alcance de todos.el almacenamiento de datos en forma de Entonces, cabe hacer la reflexión de siontologías. Para lograr este propósito, estamos realmente utilizando a cabalidad lasexisten algunas herramientas libres que potencialidades de esta nueva e interesantepermiten el diseño y desarrollo de ontologías. forma de representación y razonamientoEntre esas herramientas se encuentra sobre el conocimiento e informaciónProtégé (actualmente en su versión 4.1 beta), almacenada.Referencias[1] Gruber., T. R., "A Translation Approach to Portable Ontologies." Knowledge Acquisition.1993, pp. 199-220.[2] Ramos, Esmeralda and Núñez, Haydemar., ONTOLOGIAS: componentes,metodologías, lenguajes, herramientas y aplicaciones. Laboratorio de Inteligencia Artificial (LIA),Centro de Ingeniería de Software y Sistemas (ISYS). Caracas, Venezuela : s.n., 2007. Reportetécnico. ISSN 1316-6239.
  • 5. [3] RDF Primer. [Online] W3C, 2004. http://www.w3.org/TR/2004/REC-rdf-primer-20040210/#rdfxml].[4] Lenguaje de Ontologías Web (OWL). Vista General. [Online] W3C, 2007.http://www.w3.org/2007/09/OWL-Overview-es.html.AutorYuniel Eliades Proenza AriasUniversidad de las Ciencias Informáticas. Ciudad de la Habana, Cuba.yproenza@uci.cu
  • 6. Generación de CertificadosCSR con el ComplementoKeymanager de FirefoxPara la generación de certificados CSR (Certificate Signing Request) utilizaremos elcomplemento KeyManager el cual nos brinda una interfaz grafica amigable, permitiendoacelerar el proceso de generacion de solicitudes de certificados.IntroducciónEn el anterior numero de esta revista, en el articulo “Instalación de Certificados Digitales enApache2”, vimos el procedimiento de como instalar un certificado digital en un servidorApache2, para lo cual utilizamos la herramienta OpenSSL para generar el certificado CSR(Certificate Signing Request), en este articulo veremos la herramienta KeyManager la cualreemplaza a la herramienta OpenSSL.El complemento KeyManager del navegador web FireFox es una herramienta para lageneración de llaves, inscripción de certificados (certificate enrollment), firmas CRL, delegaciónde identidad y autoridad (identity and authority delegation).Pasos para instalar el complemento 1. Abrir el navegador FireFox. 2. En el menú elegir la opción Herramientas, dentro la cual se debe seleccionar la opción Complementos como se muestra a continuación: 3. En la ventana de Complementos que se abrirá se debe buscar el complemento KeyManager e instalarlo: 4.
  • 7. 5. Cerramos la ventana de Complementos y tendremos en el navegador FireFox una barra de herramienta KeyManager como se muestra a continuación:
  • 8. Procedimiento para generar un certificado CSR 1. En la Barra de Herramientas seleccionamos KeyManager y se despliega la siguiente ventana: 2. Elegimos el botón de Generate CSR y se abrirá la siguiente ventana, en la que se deben introducir los datos para el Certificado Digital:
  • 9. 3. 3.Una vez llenados los datos elegimos el botón Generate PKCS#10 y se generara el Certificado CSR:4. Debemos grabar el Certificado CSR eligiendo el botón Save, después de grabado se vera en la consola principal el certificado CSR:5. Este Certificado CSR debe ser enviado a una entidad emisora de certificados digitales CA (Certificate Authority). Existen varios CAs gratuitos como por ejemplo www.cacert.org ó www.openca.org.   Debemos suscribirnos en estos sitios y cargar el CSR.6. Una vez que el CA ha procesado la solicitud nos informará por correo electrónico y nos proporcionara el certificado digital, para nuestro ejemplo el archivo servidor.crt, el CA por lo general tarda de uno a dos días en procesar la solicitud.7. Una vez que el certificado digital es enviado por la entidad emisora CA, continuaremos con la carga del certificado digital en el servidor Web instalado (ver articulo “Instalación de Certificados Digitales en Apache2” en el anterior número de esta revista).
  • 10. ConclusionesCon esta herramienta ahorramos tiempo en la generación de certificados CSR de una formasimple y utilizando una interfaz gráfica amigable.Esta herramienta tiene muchas mas funcionalidades para facilitar la gestión de certificadosdigitales.Referencias[1] https://addons.mozilla.org/es-ES/firefox/addon/4471/[2] http://pubs.research.avayalabs.com/pdfs/ALR-2006-044.pdfAutorRenzo Martinez PardoIngeniero Sistemas Electrónicosrenzomp@lycos.com
  • 11. Entendiendo expresioneslambda en C# con MonoUna expresión lambda es una función o una subrutina sin nombre que se puede utilizardonde haya un delegado válido. Las expresiones lambda pueden ser funciones osubrutinas y tener una sola línea o varias líneas. Puede pasar valores del ámbito actuala una expresión lambda. la versión 3.0 son las expresiones lambda (lambda expression). Programación Funcional Los conceptos básicos de la programación funcional datan de 1956 a 1958 con el trabajo de Jonh McCarthy en el desarrollo y diseño de LISP (List Processor), este lenguaje esta basado en el cálculo lambda que sentó las bases de los lenguajes funcionales, características como:Introducción ✔ Recursion: se utiliza para paraLa programación imperativa, es uno de los realizar operaciones repetitivas, noparadigmas de computación mas utiliza la iteración.ampliamente utilizados por la mayoría delenguajes de programación de alto nivel; ✔ Funciones de primer orden: lasdebido al gran soporte académico y funciones tienen el mismo nivel quecomercial y a que los programas son cualquier otro elemento del lenguaje,relativamente independientes del tipo de pueden aplicarse a valores,computadora donde se ejecutan, porque los evaluarse, regresar un valor y serlenguajes de programación deben abstraer parámetros de otras funciones.las operaciones del modelo de maquina para ✔ No requiere asignación: el computóla cual se diseñaron. se realiza aplicando funciones a losLa programación imperativa se basa en el argumentos.modelo de la máquina de Von Newman, de la ✔ Garbage collector: Se reclaman loscual la mayoría de las computadoras objetos que no están siendo utilizadopersonales y estaciones de trabajo tienen por el programa.elementos comunes. ✔ Tipado dinámico (Dynamic typing):Aunque menos utilizado existe otro La comprobación del tipo se realizaparadigma que a diferencia del imperativo se en tiempo de ejecución, los valoresbasa en las matemáticas (aplicación de tienen tipos pero las variables no.funciones) con el cual igualmente podemos El paradigma funcional se basa en elexpresar operaciones computacionales de concepto matemático de función, que laforma mas compacta y abstracta, este mayoría de los lenguajes de programaciónparadigma se conoce como programación imperativos y funcionales comparten y cuyafuncional. definición esUno de los muchos elementos del (1) Una función f es una regla que asigna aparadigma funcional que .NET incluye desde
  • 12. cada elemento x de un conjunto A el objeto delegate (delegado) que es un tipoexactamente un elemento llamado f(x) de particular de objeto (un delegate deriva de laconjunto B clase base System.Delegate), que puede encapsular la referencia a un método estáticoDonde la programación funcional marca su o de una instancia como si fuera undiferencia con la imperativa, es que para la mecanismo de callback(devolución deprogramación funcional cada programa es llamada) similar a los apuntadores de funciónequivalente a esta definición donde x es el de C y C++ pero con la importante diferenciaargumento o dominio de f mientras que y es de que proporciona un tipado seguro (type-el rango de f o la salida sea los programas safety) para evitar errores en tiempo deson cajas negras donde solo importa el que ejecución y que puedan detectarse en tiempose esta computando y no el como se esta de compilación si la función no coincide concomputando que es el caso de la la firma del método al que hace referencia.programación imperativa. Esto posibilita en un contexto deEn resumen cuando se programa de forma programación orientada a objetos que losfuncional se piensa más en expresiones y su métodos pueden recibir como argumentossignificado que en una secuencia de otros métodos además de tipos primitivos yoperaciones en memoria. de referencia. Veamos un ejemplo para ilustrar estosTipos Delegate y métodos conceptos con C#.anónimosDesde sus primeras versiones .NET introdujoEn versiones anteriores a C# 2.0 (1.1,1.0) los delegate se utilizaban como en el siguientelistado: Listado 1.1 Uso de métodos como parámetros en C# 1.1 using System;namespace Samples{class Program{ //definimos al objeto que guardara las referencias a los metódos delegate double GetTemp(double d); static void Main(string[] args) { int x = 44; Console.WriteLine("{0} Fahrenheit = {1:0.00} Celsius", x, ApplyF(x,Temp.GetCelsius)); Console.WriteLine("{0} Fahrenheit = {1:0.00} Kelvin", x, ApplyF(x,Temp.GetKelvin)); Console.Read(); } //el metódo que aplicará el metódo que es su segundo argumento static double ApplyF(double d,GetTemp f){ return f(d); } } //la implementación de cada metódo class Temp{ public static double GetCelsius(double fahrenheit) { return (fahrenheit - 32) * (5 / 9D); }
  • 13. public static double GetKelvin(double fahrenheit) { return fahrenheit + 460; }}}Aquí observamos que los métodos que implementan la funcionalidad deben declararse de unamanera completamente procedural e imperativa. public static double GetCelsius(double fahrenheit) { return (fahrenheit - 32) * (5 / 9D); } public static double GetKelvin(double fahrenheit) { return fahrenheit + 460; }C# 2.0 al incorporar los métodos anónimos, se acerca más a la programación funcional alasociar un bloque de código a un delegate sin necesidad de tener toda su implementación enun método sino dentro de la misma declaración del objeto, como mostramos en el siguientelistado que es el listado anterior pero usando métodos anónimos. Listado 1.2 Métodos como parámetros utilizando métodos anónimos.using System;namespace Samples{class Program{delegate double GetTemp(double d);static void Main(string[] args){ int x = 44; Console.WriteLine("{0} Fahrenheit = {1:0.00} Celsius", x, ApplyF(x, delegate(doublefahrenheit) { return (fahrenheit - 32) * (5 / 9D); })); Console.WriteLine("{0} Fahrenheit = {1:0.00} Kelvin", x, ApplyF(x, delegate(doublefahrenheit) { return fahrenheit + 460; })); Console.Read();}static double ApplyF(double d, GetTemp f){ return f(d);}}}
  • 14. Aquí observamos la diferencia con respecto al código anterior del listado 1.1. Console.WriteLine("{0} Fahrenheit = {1:0.00} Celsius", x, ApplyF(x, delegate(doublefahrenheit) { return (fahrenheit - 32) * (5 / 9D); })); Console.WriteLine("{0} Fahrenheit = {1:0.00} Kelvin", x, ApplyF(x, delegate(doublefahrenheit) { return fahrenheit + 460; }));Expresiones Lambda (Lambda Expressions)Las expresiones lambda provienen del cálculo lambda (lambda calculus) desarrollado porAlonzo Church en los años 1930’s como una notación para representar todas las funcionescomputables equivalentes a una máquina de Turing, todos los lenguajes funcionales pueden servistos como una variante sintáctica del cálculo lambda.Las expresiones Lambda son útiles para sintetizar funciones con pocos parámetros queregresan algún valor, esta expresión consiste básicamente en una regla de sustitución queexpresa tal cual una función o sea un mapeo de los elementos del conjunto dominio a loselementos de un codominio por ejemplo en la siguiente expresión:cuadrado : integer → integer donde cuadrado(n) = n²se reduce a una notación que produce una función anónima donde los únicos símbolos son laletra lambda (λ) y el punto (.)λn.n²En la mayoría de los lenguajes funcionales las funciones anónimas son valores representadospor la palabra reservada lambda, como el caso de LISP.Lambda (n)(**n)Aunque C# no utiliza los símbolos de la notación matemática lambda, el operador lambda es =>que significa “tiende a” o “va hacia a”, la estructura de una expresión lambda en C# es:(Argumentos de entrada) => (salida al procesarlos)En caso de únicamente una variable la sintaxis es:(x) => (x*x)En caso de múltiples argumentos la sintaxis es:(x,y,z) => ()
  • 15. En este punto es importante saber que es el tipo delegate que dicta el tipo de los parámetrosde entrada y de salida. Listado 1.3 Métodos como parámetros utilizando expresiones lambdausing System;namespace Lambdas{ class Program { delegate double GetTemp(double d); static void Main(string[] args) { int x = 44; Console.WriteLine("{0} Fahrenheit = {1:0.00} Celsius", x, ApplyF(x,(fahrenheit) => ((fahrenheit - 32) * (5 / 9D)))); Console.WriteLine("{0} Fahrenheit = {1:0.00} Kelvin", x, ApplyF(x, (fahrenheit)=> (fahrenheit + 460))); Console.Read(); } static double ApplyF(double d, GetTemp f) { return f(d); } }}Podemos observar que de los métodos anónimos a las expresiones Lambda, nos queda unasintaxis más legible y compacta.(fahrenheit) => ((fahrenheit - 32) * (5 / 9D))(fahrenheit) => (fahrenheit + 460))El resultado de la ejecución del programa es el mismo con cada uno de los listados.
  • 16. ConclusiónPara los nuevos retos en el desarrollo de software, es importante que los lenguajes deprogramación incorporen características de un paradigma de programación diferente a ellospara extender sus capacidades y así poder expresar algoritmos de una manera compacta y másconcisa esto da como resultado un código más legible.Los ejemplos pueden ser descargados de http://xomalli.blogspot.com/ Este documento está protegido bajo la licencia de documentación libre Free DocumentacionLicense del Proyecto GNU, para consulta ver el sitio http://www.gnu.org/licenses/fdl.txt , toda persona que lo desee está autorizada a usar, copiar y modificar este documento segúnlos puntos establecidos en la «Licencia FDL»AutorI.S. Martín Márquezxomalli@gmail.com
  • 17. Servidor de MensajeríaInstantánea – Jabberd2Jabber es un protocolo extensible, abierto y estándar basado en XML para elintercambio en tiempo real de mensajes y presencia entre dos puntos en Internet. XML y con núcleo XMPP, para el intercambio en tiempo real de mensajes y presencia entre dos puntos en una red, utilizando el puerto 5222 preferentemente. ¿Para que nos sirve? Como su nombre lo dice nos permite enviar mensajes instantáneos a los usuarios registrados en la LAN, permitiendo enviar mensajes cuando el destinatario no está conectado, así como poder tenerlo abierto en varios programas (clientes jabberd) a la vez, permitiendo asignar prioridades. Este sistemaIntroducción permite, por ejemplo, asignar prioridad uno aLa comunicación es uno de los pilares la aplicación que tienes en la oficina y dos enbásicos de cualquier empresa, más aún con la casa, lo que permitira que los mensajesel avance de las Tecnologías de Información lleguen a la oficina mientras estés conectado,y Comunicación (TIC), nuestros clientes y caso contrario se enviarán a la aplicación deusuarios exigen tener la información de tu casa.manera inmediata. Una de las soluciones a El servidor Jabberd2 soporta SSL, ipv6,este requerimiento es un servidor de transferencias de archivos (comentar que enmensajería. algunas pruebas se pasó incluso imágenesEste servidor debe cumplir con los ISO completas) que puedes parar y reanudarestándares, condiciones y adecuación a en cualquier momento.nuestros requerimientos, surgiendo Jabberd Soporta salas de chat, interoperabilidad entreque conforma una federación de mensajería distintos servidores, usuarios ilimitados yinstantánea en la que todo el mundo puede muchas más particularidades. Empresas yhablar entre sí sin restricción alguna y lo mas servicios de internet ya lo usan, como iChat,importante LIBRE. tan solo deberemos de elegir un servidor y unEste pequeño artículo pretende introducirlnos cliente y ya nos podemos conectar. Estoen la instalación, configuración y permite poder elegir libremente unaadministración de Jabberd2 en una LAN, el plataforma y con ella un programa los quecual puede ser implementado de forma cada vez son más numerosos.personalizada, cumpliendo los requerimientosde nuestra empresa. Características Jabberd2 presenta las siguientes¿Que es Jabberd? características:Jabber es un protocolo abierto y libre paramensajería instantánea, que está basado en
  • 18. ✔ Protocolo abierto: Como todo ✔ Salas de conversación: Conocido software libre, se puede programar un como Multi-User Chat. Es una de las servidor o un cliente a medida o ver el extensiones que han sido añadidas a código y modificarlo, entre otras la mensajería Jabber, la cual le cosas. permite la creación de grupos de debate como en las redes IRC, con la ✔ Descentralizado: Se puede crear un posibilidad de poseer usuarios con servidor para Jabber, y se puede distintos privilegios (moderadores, interoperar o unirse al resto de la red participantes e invitados), iniciar Jabber. conversaciones privadas y transferir ✔ Extensible: Se puede ampliar con archivos. mejoras sobre el protocolo original. Las extensiones comunes son manejadas por la XMPP Standards Que precisamos Fundation. Necesitamos instalar las librerias de ✔ Seguro: Cualquier servidor Jabber libgc.so, libgsasl.so, libntml, está aislado del exterior. El servidor libudns.so y libmysqlcliente.so; asi de referencia permite SSL para tambien mysql­server para el comunicaciones cliente-servidor y almacenamiento y openldap para la algunos clientes aceptan GPG como autentificacion. Jabberd2 es un servicio cifrado de las comunicaciones usando que puede ser instalado en diferentes cifrado asimétrico. distribuciones Linux, mediante sus ✔ Multiredes: Un transporte o pasarela respectivos gestores de paquetes: permite comunicarse con otros ✔ Debian y Ubuntu con apt-get protocolos usados por clientes como Windows Live Messenger, ICQ, AOL o ✔ RHEL, CentOS y Fedora con yum. Yahoo.Configuración InicialNecesitamos identificar a nuestro servidor, con un IP y puerta de enlace válido dentro denuestra red y un nombre en formato FQDN (Fully Qualified Domain Name), que es un nombreque incluye el nombre de la computadora y el nombre de dominio asociado a ese equipo, ennuestro caso será jabberd2.atix.net.InstalaciónAhora nos queda instalar el paquete jabberd2, si es que tenemos acceso a internet lo podemoshacer con apt­get install jabberd2 en distribuciones basadas en Debian, y yum install jabberd2 en distribuciones basados en Red Hat, en mi caso no tengo acceso a internet y solotengo el paquete .rpm y lo instalamos.
  • 19. Verificamos si se crearon los archivos, el servicio y el usuario correspondienteAlmacenamiento a MYSQLJabberd2 nos presenta varias alternativas de base de datos como mysql, oracle, postgresql yotros, para almacenar a los contactos, grupos, datos personales y otros, en nuestro ejemplo lovamos a tener en mysql. Para lo cual necesitamos crear una base de datos, crear tablas y crearun usuario con los privilegios correspondientes.En la instalación de Jabberd2 incorpora scripts de creación de base de datos y tablas:
  • 20. Nos conectamos a mysql con un usuario con privilegios de poder crear base de datos, en micaso root:Aquí, hacemos correr el script que corresponde a mysql como sigue:
  • 21. Damos privilegios al usuario jabberd2 para la base de datos jabberd2.Verificamos la creación de la base de datosAhora estamos listos para comenzar la primera configuración del servidor de mensajeríainstantánea Jabberd2.Configuración con MYSQLSe usarán un par de archivos de configuración XML para configurar Jabberd2, de manera quela autenticación y almacenamiento de usuarios sea con mysql. 1. Edite /etc/jabberd/sm.xml cambiando <id>localhost.localdomain</id> con el nombre de anfitrión u otra id de su servidor, en nuestro ejemplo será <id>jabberd2.atix.net</id>. Ahora en la sección <storage> cambie el <driver>db<driver> a <driver>mysql</driver> con esto le indicamos a Jabberd2 que el almacenamiento sera a la base de datos mysql; ahora verificamos que en la sección <storage> este habilitado <auto­create/> para que usuarios nuevos ser registrados sin la necesidad de estar en el almacenamiento mysql, esta puede ser estar o no en la política de creación de usuarios, todo depende de la empresa. Como configuramos el almacenamiento a mysql le indicaremos en al sección <mysql> el usuario y contraseña <user>jabberd2</user><pass>secret</pass>, con esto terminamos con el archivo sm.xml. 2. Edite /etc/jabberd/c2s.xml cambiando <id>localhost.localdomain</id> con el nombre de anfitrión u otra id de su servidor, habilitando el registro de los usuarios, en nuestro ejemplo será <id   register­enable=true>jabberd2.atix.net</id>. Ahora en la sección <authreg> cambie el <module>db</module> a <module>mysql<module> con esto le indicamos a Jabberd2 que la autenticación será a la base de datos mysql. Como configuramos el almacenamiento a mysql le indicaremos en al sección <mysql> el usuario y contraseña
  • 22. <user>jabberd2</user><pass>secret</pass>, con esto terminamos con el archivo c2s.xml.Con estos pasos tenemos nuestra primera configuración de Jabberd2.Inicio de Servicio y configuracion de un cliente jabberdSeguimos los siguientes pasos: 1. Iniciamos nuestro servidor, asegurando que el servicio mysql esta arriba. 2. Instalamos un cliente jabbers para Linux como PSI, si es que tenemos acceso a internet lo podemos hacer con apt­get install psi en distribuciones basadas en Debian, y yum install psi en distribuciones basadas en Red Hat, en mi caso no tengo acceso a internet y solo tengo el paquete .rpm y lo instalamos. 3. Iniciamos nuestro psi en entorno gráfico desde aplicaciones­> Internet­>Psi 
  • 23. 4. Indicamos el nombre del perfil con el cual vamos a trabajar, habilitamos el registro de usuario y le damos adicionar (add).5. Se llenan los datos de la cuenta a ser registrada con su respectiva clave y le damos registrar (register).6. Se confirma el registro satisfactorio y le damos aceptar (ok).7. Una vez registrado, debemos guardar los datos de la cuenta en el perfil de psi y le damos guardar (save).
  • 24. 8. Así configuramos psi para un usuario nuevo, por defecto estamos fuera de línea (offline), nos queda ponerlo en linea (online), para utilizar el servicio e ingresar los datos del usuario.9. Una vez introducidos nuestros datos le damos publicar (publish).
  • 25. 10. Se confirma el almacenamiento de los datos de usuario y le damos aceptar (ok).Como vemos ya estamos en línea usando el servidor recién instalado. Hasta el momento solohemos invertido aproximadamente 20 minutos en la configuración del servidor de mensajeríainstantánea Jabberd2 que se encuentra ya en producción.Ahora tenemos Jabberd2 funcionando con mysql.En el siguiente número de la revista veremos mas sobre la configuración e incorporaremos laautentificaron con LDAP y otros trucos más, hasta la siguiente.Bibliografía[1] http://www.jabberes.org/[2] http://codex.xiaoka.com/wiki/jabberd2:startAutorDiego Parraga Menchacaparragdiego@gmail.com
  • 26. RIARich Internet ApplicationLas aplicaciones RIA son un nuevo tipo de aplicaciones con más ventajas que lasaplicaciones Web tradicionales. Estas surgen como una combinación de las ventajasque ofrecen las aplicaciones Web y las aplicaciones tradicionales (aplicaciones deescritorio).Adicionalmente se encuentran las capacidades multimedia donde no hace falta ningúnreproductor del Sistema Operativo del usuario. usted, la plataforma está todavía en algún lugar en la “Nube”. ✔ Usar una plataforma de tipo cliente: Para empresas con cierta resistencia a ubicar sus activos en la Nube, la única forma de adquirir capacidades para construir RIA es hacerlo por su propia cuenta empleando alguna de la variedad de herramientas de tipo Plataforma de Cliente RIA, como Adobe Flex/Air, Java FX o por medio de algún framework Javascript.Introducción Que obtener con RIA ✔ Menor costo total de propiedad:Los valiosos beneficios que las aplicaciones Con RIA no hay necesidad de instalarRicas de Internet (RIA) representan para las software del lado del Cliente niempresas ya han sido ampliamente ocuparse de mantener a cada nuevodocumentados y son claramente usuario. La aplicación se configurareconocidos; desde un bajo costo total de automática y transparentemente en elpropiedad, hasta la disponibilidad total de la lado del Cliente y toda la aplicación yaplicación, mayor seguridad y una las actualizaciones de la misma y asíexperiencia del usuario mejorada. como de la plataforma se llevan a cabo en el servidor .Contextos de ✔ Estar listo para SaaS : Lasimplementación de RIA aplicaciones SaaS representarán el 25% de todo negocio de software. RIAInicialmente las RIA estaban enfocadas a dos es un componente esencial en elposibles entornos: desarrollo de una propuesta exitosa ✔ Usar una Plataforma como servicio de Software como Servicio (SaaS). (PasS): Con ejemplos como ✔ Mejor experiencia del usuario y Force.com, Google, Microsoft, productividad : A diferencia de las Amazon y LongJump. Si esta fuera la aplicaciones de Internet típicas, las opción elegida, entonces deberá RIA no requieren una comunicación considerar que si bien todas las Cliente-Servidor para cada dato partes del sistema son provistas por procesado y cada actividad. La
  • 27. aplicación corre más rápido y más depurar que las aplicaciones web agradablemente, los empleados tradicionales hacen su trabajo más rápido y los ✔ Consistencia: la interfaz de usuario y clientes reciben un mejor servicio. las experiencias pueden ser ✔ Mas disponibilidad de la aplicación: controladas por el sistema operativo, Las RIA pueden ejecutarse el monitoreo del rendimiento y remotamente desde cualquier parte y diagnóstico de errores puede tornarse pueden accederse en cualquier difícil. momento vía un amplio abanico de ✔ Instalación y mantenimiento: no se dispositivos móviles portátiles. Los precisa instalación y su usuarios pueden acceder a los datos mantenimiento es automático necesarios para trabajar desde su propia casa o desde fuera de la ✔ Offline: puede ser soportada empresa. reteniendo el estado en la máquina cliente ✔ Mejor seguridad corporativa y protección de derechos de ✔ Seguridad: se mejora la seguridad propiedad intelectual : La por medio de actualizaciones arquitectura multicapa de RIA le automáticas y “sandbox”. Pero las permite ocultar los elementos extensiones por si mismas son sensibles de su aplicación y evitar el sujetas a vulnerabilidades robo corporativo, el abuso del activo, ✔ Rendimiento: puede ser mejorado clientes y el malware. dependiendo de la aplicación y de las características de la red. AplicacionesCaracterísticas básicas que pueden procesar localmente en el cliente evitando viajes hacia el ✔ Facilidad en la conectividad servidor lo que incrementa su ✔ Distribución de la aplicación entre rendimiento. Dándole más trabajo al cliente y servidor cliente también se puede incrementar el rendimiento del servidor. Por el ✔ Acceso local o remoto contrario los recursos necesarios ✔ Inteligencia en la interfaz hacen difícil que las aplicaciones puedan ejecutarse en dispositivos pequeños, móviles o embebidosCaracterísticas clave ✔ Riqueza: añadiendo características ✔ Accesibilidad: AJAX nativo en los que no son nativas en los navegadores web y es el único RIA navegadores web como captura de framework que puede ser encontrado vídeo por los diferentes motores de búsqueda. Beneficios ✔ Comunicaciones avanzadas: con servidores que soporten nuevas ✔ No necesitan instalación (solo es tecnologías se puede mejorar la necesario mantener actualizado el experiencia del usuario al utilizar navegador web). protocolos de red optimizados y ✔ Las actualizaciones hacia nuevas entradas y salidas asíncronas. Se versiones son automáticas. requiere de una conexión de banda ancha confiable ✔ Se pueden utilizar desde cualquier ordenador con una conexión a ✔ Complejidad: las soluciones Internet sin depender del sistema avanzadas puede ser más difíciles de operativo que este utilice. diseñar, desarrollar, implementar y ✔ Generalmente es menos probable la
  • 28. infección por virus, que utilizando por Arquitectura ejemplo programas ejecutables. Generalmente se tiene una aplicación cliente ✔ Mayor capacidad de respuesta, ya stateful y una capa de servicios separada. que el usuario interactúa directamente RIA se apoya más sobre un desarrollo con el servidor, sin necesidad de cliente-servidor en vez de un desarrollo web recargar la página. tradicional, en donde el estado se mantiene ✔ Ofrecen aplicaciones interactivas que en el servidor en sesiones. El cliente sabe no se pueden obtener utilizando solo acerca de si mismo y el tipo de datos que HTML, incluyendo arrastrar y pegar, esta solicitando y únicamente solicita los cálculos en el lado del cliente sin la datos que necesita sin ninguna otra necesidad de enviar la información al información. servidor. ✔ Cliente: Se maneja la interacción ✔ Evita la problemática del uso de entre el usuario y la interfaz del diferentes navegadores al abstraerse usuario, el usuario invoca comandos, de ellos a través de un framework. actualiza vistas y carga datos. Aquí se mantiene el estado de la aplicación, se manejan todas las peticiones deQue puede hacer RIA datos hacia el servidor y se controla ✔ Emular el comportamiento de como se presentan los datos. aplicaciones de escritorio ✔ Servicios: Aquí se manejan y se ✔ Variedad de efectos procesan todas las peticiones de la aplicación cliente y delega las ✔ Manejo de datos del lado del cliente acciones en el servidor, estas pueden ✔ Lógica del negocio del lado del cliente ser, guardar datos en la base de datos, actualizar los archivos del ✔ Redefinición de la metáfora "Pagina" sistema, retornar datos al servidor, o ✔ Emulación del comportamiento de algún tipo de proceso analítico. aplicaciones de escritorio Determina y le da formato a los datos que son retornados al cliente. ✔ Arrastrar y soltar ✔ Menús y barra de herramientas Tecnologías ✔ Menús contextuales A continuación enumeramos algunas de las ✔ Ventanas y wizards tecnologías utilizadas por las RIA: ✔ Paneles ✔ DTHML ✔ Arboles ✔ HTML ✔ Validación de formularios ✔ Javascript ✔ Acciones del teclado ✔ CCS ✔ Controles No HTML ✔ AJAX ✔ Acordeones ✔ XML ✔ Combobox ✔ Flash, Extensiones de los browsers ✔ Spinner box ✔ Java ✔ Sliders ✔ ActiveX ✔ ✔ XUL ✔ CURL
  • 29. Frameworks JScript Dojo Rico Prototype YUI Qooxdoo Backbase GWT ZK Ext Js JavaFx Script.aculo.us Openlaszlo
  • 30. Algunas aplicaciones en la webAutorEsteban Saavedra LópezPresidente de la Fundación AtixLibre (Bolivia)Activista de Software Libre en Boliviajesaavedra@opentelematics.orgesteban.saavedra@atixlibre.orghttp://jesaavedra.opentelematics.orghttp://www.atixlibre.org
  • 31. Introducción básica aApache Ant: Alternativa amake para Java.Apache Ant es un una herramienta open source y cross platform desarrollada en Javapara facilitar el proceso de compilación de aplicaciones Java. El trabajo que realiza Antes muy parecido al que realiza la herramienta GNU make con C/C++ para facilitar lacompilación de proyectos con la ventana de ser más fácil de usar. directorios, un directorio para las bibliotecas externas, otra para los archivos bytecode(.class), etc. Y efectivamente, ya hay algo de orden. Sin embargo, este orden tiene un costo y ese es que el proceso de compilación se vuelve muy complicado, porque tenemos que pasar muchos argumentos al compilador que indiquen la ubicación de los recursos. Y por si fuera poco este no en si el problema, imaginen tener que teclear a mano toda una gran linea deIntroducción comandos para compilar nuestro proyectoErase una vez un joven programador que se cada vez que deseemos probar un cambio enaventuro en el mundo Java. En sus principios nuestra aplicación, por más pequeño quey como lo manda el reglamento de todo buen éste sea.programador tecleo su primer Hello World!. He aquí el problema. Y para eso esta Ant,Desde una consola tecleaba javac  para ayudarnos en esta tarea.MiClase.java y después con un solo java MiClase su aplicación posaba frente a él sinmayor problema. Pasa el tiempo y aquel ¿Que es apache Ant?joven programador que escribía solo Ant es una herramienta open source quepequeños programas se aventura cada ves permite compilar, ensamblar, probar ymás en la construcción de aplicaciones que ejecutar aplicaciones Java. Ant además esse vuelven complejas cada vez más y más. una herramienta cross platform(plataformaEste programador del que les hablo se da cruzada), lo cual significa que trabaja decuenta de que sus aplicaciones se hacen forma idéntica en diferentes plataformas. Sicada ves más grandes y eso es bueno, pero bien inicialmente fue desarrollada para Javaal mismo tiempo ve que amontonar todas sus ésta herramienta también puede extenderseclases en un mismo directorio convierten su a otros lenguajes. Ant fue desarrolladaentorno de trabajo en un verdadero inicialmente(ya no más) por James Duncandesorden; archivos .java,   .class, Davidson cuando trabajaba en Sunbibliotecas externas y demás componentes Microsystems en el 2001 y posteriormenteque usa en sus aplicaciones. donada a la Apache Software Foundation laEn un intento por poner orden a su trabajo el cual mantiene el desarrollo activo hasta el díaprogramador del que les hablo primeramente de hoy. La versión más reciente es la 1.8.1,aprende a organizar su código mediante el sin embargo, en este documento seuso de paquetes, en sus respectivos empleara la versión 1.8.0.
  • 32. Instalación de Ant Desarrollo de una aplicaciónAntes que nada, es necesario instalar los en Javapaquetes necesarios para poder emplear Ant. Para ver como trabaja Ant y cuales son lasEn mi caso estoy utilizando debian y ventajas de trabajar con ella a continuaciónúnicamente es necesario una línea en la se elabora un pequeño programa queconsola: primeramente se construye siguiendo la# apt-get install ant metodología tradicional y posteriormente salen a relucir las virtudes de Ant en esteEste proceso idéntico en ubuntu y derivados mismo proceso. Cabe mencionar que elde debian así que no hay gran complicación. programa no pretende ser de utilidad, soloAhora, para distribuciones basadas en como ejemplo.paquetes RPM tales como openSuse, o Para nuestro proyecto crearemos el directoriofedora con una línea como esta sera Presentacion, src, ant, example, build,suficiente: classes según la la estructura que se# yum install ant muestra en la siguiente imagen.Por supuesto, siempre podemos descargar elpaquete desde su pagina Web enhttp://ant.apache.org. En este sitiotenemos la opción de descargar el códigofuente o bien el paquete binario, además dela documentación y otros recursos de apoyo.La instalación desde código fuente es muysimple y no requiere mayor instrucción,desde el paquete binario aun más. Gráfico 1. Estructura de directorios de nuestro proyecto. Pasamos el siguiente código a algún editor de texto(kate, gedit, vim, geany, etc.) lo guardamos en el directorio src.package ant.example;import java.awt.BorderLayout;import java.awt.FlowLayout;import javax.swing.JOptionPane;import javax.swing.JFrame;import javax.swing.JLabel;public class HelloAnt extends JFrame{ private JLabel lblPresentacion; public HelloAnt() { super( ".:Presentacion:." ); setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); setSize(600, 100); setLayout( new FlowLayout() ); inicializaComponentes(); setVisible(true); } public void inicializaComponentes() { lblPresentacion = new JLabel(); String nombre = JOptionPane.showInputDialog( "Su nombre aqui por favor:" );
  • 33. String mensaje = "<html><h3> Hola " + "<font color="blue"><i>" + nombre + "! </i></font>" + "bienvenido a tu primer proyecto con Ant. " + "En ATIX, por supuesto!."+ "</h3></html>"; lblPresentacion.setText( mensaje ); add(lblPresentacion); } public static void main(String[] argumentos) { HelloAnt helloAnt = new HelloAnt(); }}Código 1. Aplicación de ejemplo.Compilación y ejecuciónYa tenemos nuestro proyecto y ahora vamos a compilarlo. Desde una consola nos ubicamos enel directorio raíz del proyecto y ejecutamos el siguiente comando:$ javac -sourcepath src/ -d build/classes src/ant/example/HelloAnt.javaSin todo sale bien ahora seremos capaces de ejecutar la aplicación de la siguiente forma:$ java -cp build/classes/ ant.example.HelloAntAlgo parecido a esto nos debe aparecer. Gráfico 2. Comparación y ejecución de la aplicación.Empaquetar aplicaciónHasta ahora todo bien, nuestra aplicación compila y se ejecuta correctamente, sin embargocuando se escriben aplicaciones es muy probable que los usuarios finales, a quienes va dirigidoel software, no le interese, o aun peor, le desagrade tener que ejecutar la aplicación tal cual lohemos hecho nosotros en la línea de comandos, el usuario final desea obtener su software, darun clic y tener su aplicación trabajando, sin importarle las clases y demás componentes que laintegran. Ante esta situación vamos a tratar de dar solución a este problema empaquetandonuestro programa, lo cual nos permite tratar la aplicación como un único objeto autocontenido.
  • 34. Sin muchos detalles creamos el directorio jar dentro build y un archivo llamado Manifest ydentro de él tecleamos lo siguiente:Main-Class: ant.example.HelloAntAhora ejecutamos:$ jar cfm build/jar/HelloAnt.jar Manifest -C build/classes/ .$ java -jar build/jar/HelloAnt.jar Gráfico 3. Ejecutando la aplicación desde un .jar.Hasta ahora ya hemos echo todo lo necesario para construir nuestra aplicación. Si bien esto noes mucho ya que estamos tratando con un proyecto muy muy pequeño la verdad es que lospasos para realizar el mismo proceso con aplicaciones grandes son un poco mas engorrosos yrepetitivos.Ant en acciónAhora veamos como realizar el mismo proceso que hicimos anteriormente pero ahora con Ant.La forma de trabajar de Ant consiste en analizar un archivo XML y realizar las tareas que ahí seespecifican. El archivo esta compuesto de objetivos(targets) y tareas(tasks).TargetsUn target es un contenedor de tareas que colabora para alcanzar un estado deseado durante elproceso de construcción(build).<target name="targetName"> <!-- Aqui las tareas --> . . .</target>TasksUna tarea es una pieza de código que puede ser ejecutada. Una tarea puede tener multiplesatributos o argumentos. La estructura común de una tarea es la siguiente:
  • 35. <nombre atributo1="valor1" atributo2="valor2" ... />Bien. Ya que vimos sencillamente como se estructura el archivo veamos como quedaría paranuestro proyecto.Por cierto, el nombre del archivo puede ser el que ustedes gusten pero por defecto Ant intentaabrir un archivo con nombre build.xml por lo cual no necesitan indicarlo si su archivo se llamaexactamente así.<project> <target name="clean"> <delete dir="build"/> </target> <target name="compile"> <mkdir dir="build/classes"/> <javac srcdir="src" destdir="build/classes"/> </target> <target name="jar"> <mkdir dir="build/jar"/> <jar destfile="build/jar/HelloAnt.jar" basedir="build/classes"> <manifest> <attribute name="Main-Class" value="ant.example.HelloAnt"/> </manifest> </jar> </target> <target name="run"> <java jar="build/jar/HelloAnt.jar" fork="true"/> </target></project>Código 2. Archivo build.xml para nuestro proyecto.Ahora cada vez que necesiten probar los cambios de su proyecto bastara con 3 líneas:$ ant build$ ant jar$ ant runTres comandos que bien pueden reducirse a uno solo que además de reducir el número decomandos también reduce problemas en archivo build.xml, tales como tener que recordar elnombre de los directorios y archivos durante la escritura del mismo.
  • 36. <project name="HelloAnt" basedir="." default="main"> <property name="src.dir" value="src"/> <property name="build.dir" value="build"/> <property name="classes.dir" value="${build.dir}/classes"/> <property name="jar.dir" value="${build.dir}/jar"/> <property name="main-class" value="ant.example.HelloAnt"/> <target name="clean"> <delete dir="${build.dir}"/> </target> <target name="compile"> <mkdir dir="${classes.dir}"/> <javac srcdir="${src.dir}" destdir="${classes.dir}"/> </target> <target name="jar" depends="compile"> <mkdir dir="${jar.dir}"/> <jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}"> <manifest> <attribute name="Main-Class" value="${main-class}"/> </manifest> </jar> </target> <target name="run" depends="jar"> <java jar="${jar.dir}/${ant.project.name}.jar" fork="true"/> </target> <target name="clean-build" depends="clean,jar"/> <target name="main" depends="clean,run"/></project>Con este nuevo código tenemos un poco mas de legibilidad ya que las referencias a todos loselementos las definimos en un principio y después se accede a ellas mediante el identificadorque se especifico y no con el valor exacto en cada ocasión.Desde la consola ejecutar ant sin argumentos y ella hará todo. Y bueno, eso es todo, espero lessirva. Hasta la próxima.ConclusiónLos proyectos de software son complicados no solo por las complejidad del problema queabordan sino también por el esfuerzo que cuesta mantenerlos y construirlos. Apache Ant es laherramienta open source que nos ayuda con la segunda cuestion. Apache Ant es unaherramienta muy extensa por lo que aquí solo hemos incluido una mera introducción a estamisma. Para profundizar en el tema una buena fuente es la documentación que incluye Ant.
  • 37. Referencias[1] http://ant.apache.org/manual/tutorial-HelloWorldWithAnt.html[2] Documentación de Apache Ant 1.8.0.AutorRafael Rendón PabloEstudiante de Ingeniería en Sistemas ComputacionalesUsuario de software libresmart.dyr@gmail.comwww.inforscience.260mb.com
  • 38. Willay newsTecnología que permite Diseño automotriz futuristahacer lloverCon los últimos cambios climáticos, los Peter Vardai y Tamas Fodor han sido loscientíficos se han dedicado a realizar encargados de la creación del automóvilinventos y hacer uso de la tecnología para conceptual que vemos en la imagen, elproducir algunos cambios en el clima, un fantástico Blackbird Mercedes, el cual sinejemplo de ello se produjo en el verano dudas tiene fuerte inspiración en lapasado (invierno para el hemisferio sur) que tecnología vista en Tron, aunquefue realmente lluvioso en Oriente Medio. De obviamente no cumpliría las mismashecho, fue demasiado lluvioso e inusual funciones.para un desierto. Vardai ha dicho que la forma está basada enAhora una compañía llamada Meteo los aerodinámicos de un avión y también queSystems ha declarado que ellos fueron los sus colores son negro y plateado, aunque encausantes de la lluvia debido al uso de un las imágenes solamente podemos ver elsistema secreto de control del tiempo que se negro y las luces de color.basa en una tecnología desarrollada porNikola Tesla en 1890. Sin dudas se trata de uno de los autos mas sobresalientes, y como muchos de ustedes,La compañía usó unas torres con forma de esperamos que salga de la fase conceptualparaguas que miden 9 metros que disparan pronto y entre en produccióniones negativos a la atmósfera cuando lahumedad supera el 30%. Los iones atraenpartículas de polvo, las cuales atraenmoléculas de agua, y luego ¡puf! Yatenemos nubes grises y lluvia.El método de “fabricación” de lluvia fueusado en cinco sitios cercanos a Abu Dhabiy Meteo Systems se lleva el crédito por 52aguaceros.
  • 39. Tinta para camuflar tanques Baby Keyboardde guerraBAE Systems es una firma británica que se Baby Keyboard es un software para bebésespecializa en darle algunas de las más que evitará que éstos borren tus archivosgeniales y locas ideas al ejército. Basándose mientras estén usando el teclado de laen diseños conceptuales que se cree computadora. Tu bebé podrá usar el tecladopueden ser convertidos en realidad en un libremente sin causar ningún tipo decorto período de tiempo, la nueva idea de problema.camuflar tanques podría llevar a la tintaelectrónica a un nuevo nivel. Cuando el pequeño le da a una tecla o clickea el mouse aparecerá en pantalla unaLo necesario son unos cuantos sensores y imagen o una palabra con su respectivoun tanque cubierto de la citada tinta. Los sonido. El programa también puede pasarsensores tomarían lecturas de los las imágenes automáticamente, solo hacealrededores, incluyendo terreno, colores y falta esperar. Obviamente otra cosa que seotra información que sería enviada a la tinta, puede hacer es ajustar el tiempo de uso della cual la proyectaría sobre el tanque, teclado por parte de tu bebé.dejándolo camuflado.Desafortunadamente para BAE Systems, latecnología necesaria para convertir a estoen una realidad es simplemente demasiadocostosa, y sobretodo para usarla en elcampo de batalla.
  • 40. Willay newsControl Paterno Salesforce compra DimdimSin duda alguna muchos padres estan Siguiendo al efecto Facebook en la manerapreocupados por tener un control sobre la en la que la gente colabora y se relaciona, elactividad de sus hijos cuando estos están en servicio de computación en nubeInternet, pues bien ahora mismo tenemos Salesforce.com ha anunciado la adquisiciónvarios programas que permiten hacer esto, de la firma de comunicaciones en tiempo realuno de los últimos es Facebook Spy Dimdim.Monitor, que es un software de monitoreo y La compra se ha llevado a cabo por unacontrol paterno. Se dedica a registrar lo que cantidad de 31 millones de dólares.hacen los usuarios de Facebook en el PCque está instalado, incluyendo perfiles, chat, Con ésta adquisición, Salesforce.commensajes privados, contactos y eventos e espera darle a la plataforma de comunicaciónincluso de vez en cuando hace una captura de la compañía “la misma colaboraciónde pantalla. También registra las búsquedas integrada y experiencia que ha hecho deonline que el usuario realiza sobre Facebook la página más popular deFacebook, clientes instantáneos de internet”.Facebook y sitios web asociados. Chatter, la plataforma de Salesforce.com, sePodrás ver exactamente lo que el usuario ha presentó en junio de 2010 y llevahecho, como si estuvieras viendo un vídeo acumulados 60,000 usuarios desde esegrabado por una cámara de seguridad. momento. La compra y la mejora que hay planificada para Chatter forma parte de lo que Salesforce.com cree el paso al servicio en nube 2, el siguiente avance de la computación en nube, que será más social, móvil y en tiempo real, y que pretende sorprender a propios y extraños. Fundada en 2007 por DD Ganguly y Prakash Khot, Dimdim ofrece una plataforma web que permite a los usuarios organizar o visitar reuniones online, demostraciones y seminarios web desde su navegador de internet
  • 41. Google Summer of Code Autor(GSoC) Jenny Saavedra López Diseño y Edición Revista Atix jenny.saavedra@atixlibre.orgA través de Google Summer of Code, lossolicitantes aceptan a estudiantesemparejados con un mentor o mentores delos proyectos participantes, ganando así laexposición a los escenarios del mundo realde desarrollo de software y la oportunidadpara el empleo en áreas relacionadas consus actividades académicas. A su vez, losproyectos participantes son capaces deidentificar con mayor facilidad y traer a losnuevos desarrolladores. Lo mejor de todo,más código fuente se ha creado y puesto enlibertad para el uso y beneficio de todos.Será el 7º año consecutivo que se organiza.No hace falta que repita qué es el SoC. Lospasados 6 años han sumado en total 4,500estudiantes de más de 85 países distintos, osea un éxito total y un gran esfuerzo porparte de Google para fomentar el SoftwareLibre. Este año Google aumentará en un25% el número de estudiantes yorganizaciones aceptadas.
  • 42. ContactoPara solicitar cualquier información, puedes contactar a: ✔ Esteban Saavedra López (esteban.saavedra@atixlibre.org ) ✔ Jenny Saavedra (jenny.saavedra@atixlibre.org)PublicaciónTe invitamos a ser parte de la Revista ATIX. La forma de participar puede serenviándonos: ✔ Artículos referidos a áreas como: ✔ Instalación y personalización de Aplicaciones ✔ Scripting ✔ Diseño gráfico ✔ Programación y desarrollo de aplicaciones ✔ Administración de servidores ✔ Seguridad ✔ y cualquier tema enmarcado dentro del uso de Software Libre ✔ Trucos y recetas. ✔ Noticias. ✔ Comics. ✔ Links de interés.
  • 43. Empezamos a registrar nuestra historia