domingo, 26 de abril de 2009

Lluvia de nubes








Hay conceptos difíciles de explicar en pocas palabras, ya que son la suma de tendecias, tecnologia y necesidades.


Hay mucha discursión acerca de lo que es o no cloud computing,

Unos lo toman como la nueva tendencia que representa el próximo paso de Internet.
Otros dicen que es una moda pasajera o incluso  que "la definición de cloud computing corre el peligro de que acabe siendo un término más de la jerga del marketing, como ha sucedido con "Web 2.0", y que se abusa de ella.

 Razón no les falta, ni mucho menos, las palabras de moda a veces se utilizan "exageradamente" en perjuicio de otras más tradicionales y un poco olvidadas.





    "Dicen que se le llama hoy en día cloud a  todo aquello que delegue parte de su ejecución en un servidor en la red, y en realidad esto no es nada nuevo."
    Opinan que es un tema "antiguo" y ya muy establecido. Dicen que la nube existe desde que se "inventó" internet y ponen como ejemplo las páginas web de la mayoría de las empresas. Consisten en documentos o programas scripts que están en un servidor, por el que la empresa paga un "alquiler" más o menos alto en función de la capacidad y los servicios añadidos que tiene a ese proveedor de servicio de hospedaje.


    Recordemos que la informática ya existia antes de Internet. En los primeros tiempos de Internet, las empresas no veían claro aun el uso que podian hacer de ella.  Con el tiempo casi todas las empresas han tenido que adaptarse a los nuevos tiempos y formas de hacer negocio e Internet se ha vuelto imprescindible en muchas de estas empresas. Vemos que se ha producido el cambio a la Sociedad de la información.
    
    De la misma manera que el termino "Ajax", fué un termino nuevo en su momento, suma de cosas un poco más antiguas que se mezclaba técnicamente con otros  conceptos como "client/server", y usaban los mismos recursos que otros "palabros" como DHTML, Tubo razon de empezar a existir de forma estable cuando se acuñó como palabra o concepto y sirvió de aglutinador de muchas cosas antiguas, pero organizadas de una forma nueva . Ajax ha sido el desencadenante técnico de Web 2.0 y viceversa.

  







Porque se la llama "nube"?
Una manera de saber lo que es cloud computing, es ver de donde viene la palabra. Nos hace comprender etimologimante el sentido que le dieros los precursores de la palabrita


La palabra evoca y recuerda a los diagramas de red que suelen tener una "nube" representando algo indeterminado en el medio de una línea que une dos nodos o procesos.
 ¿ porque no se usaba un rectángulo o un circulo?, porque no sabíamos "exactamente" lo que había dentro de esa nube, y lo mejor aun, no encestábamos saberlo para hacer nuestro diagrama y desarrollar la idea. A la nube la pasábamos un "paquete", que "milagrosamente" llegaba a su destino. Esto era la abstracción, ya que en esa nube se dan procesos complejos para que el paquete llegue de verdad, pero nos sirve para definir "rápidamente" el modelo, sin entrar en todos los detalles.













Qué es la "nube"?

    Tomemos nuestro negocio, y hagamos un "diagrama" con los elementos tecnologicos usados, todos los elementos que sean programas usados tanto libres como de pago, sistemas operativos, middleware, etc, los ponemos en una nube,  y solo dejamos definido claramente todo  lo que sea intrinsecamente definitorio de nuestro modelo.
¿Cuanto nos quedaria ? es posible que muy poco o casi nada. (solo los datos en si).

   Ahora pongamos todo eso que esta en una nube en un servidor remoto al cual accedemos desde cualquier parte, y nos preocupamos solo de lo "importante". Esto sería "computación en nube".

 
    Desde la perspectiva de un usuario, es adquirir y desarrollar servicios sin necesidad de comprender toda la tecnología que hay detrás.
    Desde el punto de vista de una organización, la nube proporciona servicios para los consumidores de forma muy simplificada, proporcionando un crecimiento potencial ilimitado, y de una gran calidad de servicio, haciendo rápido el uso de herramientas muy innovadoras.
    Es la adquisición de un servicio que maneja los recursos de la empresa, proporcionando control completo a bajo coste.
    En un mundo que todo se puede conectar a Internet, el incremento exponencial de información y el aumento de dispositivos (tipo móvil o palm), se crea el dilema si se quiere llegar a todo. La complejidad incrementa, y se demanda simplicidad. Las organizaciones están acelerando un cambio de mercado, Global, pero centrándose en lo domestico y damandas sociales.
    Las empresas necesitan potenciar completamente sus negocios, implementando negocios innovadores, pero luchan con las barreras de sus propios recursos.
    Esto llama a un modelo  informático más dinámico que permita la rápida adquisición y puesta en marcha de aplicaciones y servicios.
    La nube puede ser uno de los elementos de este modelo. Las tecnológicas "entre lineas" asociadas a la nube pueden ser parte de ese aprovechamiento , enfocando a la creación de negocios más dinámicos, sin depender de los recursos que necesitan. Es posible que al final se le termine llamando  Web 4.0 , aunque la Web 3.0 que dicen que se esta desarrollando en paralelo, desde luego no ha tenido tanto interes ni espectativas.








Cloud computing, se asocia a varios términos, se le puede comparar o simplemente tomarla como  la mezcla de todos ellos.



Se puede decir: "El Cloud computing sería la la tendencia a basar las aplicaciones en servicios alojados de forma externa, en la propia web."
Sin embargo, la forma en que  interactúan las cosas en la nube va mas allá del navegador de Internet, con la nube tambien se puede interactuar con aplicaciones de escritorio, desde una pda o teléfono movil. También hay que decir que todo aquel que no quiera tener alojado todo el sistema en la nube, tambien puede hacerlo , sin necesidad de renunciar "dogmaticamente" a cualquier otra cosa que puede aprovechar de la nube.

La nube aglutina diferentes servicios en poderosos servidores que están mantenidos por grandes compañias que garantizan un servicio estable. Una posible forma de entender la nube es pensar en usar servicios que en vez de "comprados", están "alquilados". 

 

 
Beneficios potenciales de la nube

 

Bajos costes, y poderosos medios. Al adoptar servicios nube en tiempos de crisis puede ahorrar dinero y dar un salto cualitativo y en cantidad del tipo de servicios. Se considera la nube como un modelo para ofrecer una buena relación calidad precio de aplicaciones y servicios. En un análisis de costes, la correcta implementación de un modelo nube, conduce a tener menor coste que disponer sistemas en propiedad, y mejor calidad de servicio.
-No necesitas un centro de datos bien comunicado ni un potente servidor.

-Tampoco pagas licencias de sistemas operativos o software adicional de servidor.

La nube permite una rápida  adaptación del negocio a usar tecnología innovadora, y hacerlo "sobre la marcha" o en demanda, es decir ponerlo en marcha rápidamente cuando se necesita, ni antes, ni después.

Haciendo un correcto uso de los servicios nube, las soluciones se ajustan rápidamente a un incremento ( o decremento) en el numero de usuarios. Y se puede pagar según el uso del servicio.




Contrapartidas

Dependencia de un servidor externo.
Seguridad (acceso a mis datos).

Monopolio. La industria estará en manos de grandes empresas. Para luchar contra esto, es bueno buscar servicios de código abierto que utilicen estadares muy generales. Así si tenemos que cambiar de servicio, no habrá que cambiar "mucho" el código. Tambien servicios que admitan importar y exportar los datos facilmente. Lo más importante de nuestro sistema es la información. No es nuevo el problema de tener que importar o exportar datos de una base de datos a otra, podría considerarse un servicio cloud como a una base de datos, de la cual tenemos que poder "extraer" la información de una forma "comoda", para poder migrar a otro sitio cuando queramos.

 


Existe una corriente de pensamiento reticente, “Una de las razones por las que no debes usar aplicaciones web para tus tareas de TI, es que pierdes el control. Tú debes estar en condiciones de realizar tus propias tareas en tu propio PC, en un programa amante de la libertad. Si usas un programa propiedad de un proveedor, o el servidor Web de otra persona, entonces quedas indefenso…el cloud computing es una trampa”.


También el presidente de Oracle, Larry Ellison, calificaba la tendencia como fenómeno pasajero. Sin embargo ha adquido Sun recientemente para hacer su propia nube.

  



Globolización.


    

No, no se trata de un error tipográfico haber escrito Globolizacion en vez de Globalizacion.

La globolizacion es el efecto que produce "la nube" en la tecnologia , su repercusión social y economica.

 

 Esto hace que las grandes compañias se preparen para tener sitio en el mercado de la nube. Los que actuen como proveedores de estas tecnologías,  tendrán que tener poderosos servicios tanto de hardware y comunicaciones, como de software con una buena relación calidad precio. Al igual que ocurre con la telefonia o electricidad, tendremos productos similares en diferentes compañias proveedoras. Esto puede producir que las empresas grandes de tecnologia, acapararán el mercado de los servicios basicos. El efecto globalización que era tecnologia para todos, se demostró un fiasco ya que la tecnologia está de mano de unos pocos.




Al igual que otros, no termino de ver el peligro que identifica Stallman sobre el Cloud Computing como fin de nada. Tambien creo que el problema con el software propietario sigue siendo el de siempre, tanto en la nube, en  internet,  o en el escritorio de nuestro ordenador.


 En el mundo actual hay una "interdependencia" de muchisimos servicios que nos proporcionan un distribuidor o un escecialista, desde la alimentación hasta los gobiernos y leyes, pasando por la energía, economia, educación, seguridad y un largo etc.












Nubes publicas y privadas


Un servicio nube, puede ser publico, privado, o los combinación de los dos.

En términos simples, un servicio nube publico,  es el que esta disponible para el acceso desde otros proveedores. El termino publico, no significa siempre gratis, en cualquier caso puede tener un coste muy pequeño.

El otro modelo llamado privado, ofrece muchos de los beneficios de los publicos. La diferencia es que en los servicios privados, los datos y procesos, se manejan dentro de la organizacion. Sin problemas de ancho de banda, exposiciones de seguridad y requerimientos legales. En adición, los servicios nube privados, pueden ofrecer al proveedor y cliente, mayor control, y seguridad en el acceso de un usuario.

Se anticipa el desarrollo de varios modelos de negocio que incluyan la integracion de servios de diferentes proveedores (publicos o privados), para optimizar los recursos de la empresa.
 

Conclusiones









     ¿ Alguien podría definir el concepto  de "energía" en pocas palabras?. Se puede ver como un hecho físico, cuántico, químico o simplemente algo abstractamente potencial. Puede considerarse desde un punto de vista "vital" de los seres vivos,  social en cuanto a la industria y vida cotidiana occidental, "estrategico" en cuanto a los planes de las multinacionales que venden "energía", o de otros millones de formas que pueda verse.  El mundo se mueve por la energía, y esa energía nos llega adquiriendola de alguien o de algo , ya sea comprando o fabricando y la utilizamos para transformar materia, sociedades y civilizaciones .

     El concepto "cloud" o en la nube, es una forma de aceptar y utilizar la "energía" exterior para que nos alimente y podamos desempeñar nuestro cometido.
  
    Las grandes compañias compiten por tener sus nubes bien cargadas de tecnología para todos los gustos y niveles.

    Al igual que ha ocurrido con otros medios de consumo, se ha creado un gran mercado de productos algunos muy simplones, otros demasiado sofisticados,

pero la gran parte son verdaderos "articulos" de uso masivo. La "crisis" obliga a renovarse a todas las grandes empresas que quieren tener su "espacio" en Internet.

    Y ahora sí, "todas" quieren tener sus  proyectos libres, ofrecidos de forma generalmente gratuita a la comunidad de desarrolladores sociales. Cualquier idea innovadora se abre paso rápidamente a través de nuevas formulas 2.0.

 

    La información ya no es algo "estático" que reside en una página web, es una combinacion de información compuesta de diferentes formas a través del uso de herramientas Cloud.


    El fenómeno "nube" no ha hecho sino empezar. Y todos muestran sus mejores galas y formas para seducir a usuarios y desarrolladores. Se ve claramente que las compañias nos están "cebando" al igual que al gorrino que hay que engordar para luego comer.

 
     Como prosumidores, hay que tener alternativas que nos ofrezcan el mayor grado de seguridad, libertad, interoperabilidad y autocontrol posible.


    Lo cloud y lo abierto, no es sinónimo de gratuito. De momento solo están "investigando" nuevas formas de negocio.

    Es posible que en el futuro nos hagan "pagar caro" esta dependencia, pero de momento es "barato". Así que mejor es mejor pensar, si no puedes con tu enemigo, uneté a el.

 

 

Artículos recomendados:




  • Saasmanía traduce un artículo que intenta explicar qué hay detrás del mundo del “Cloud Computing”.
  • Simpable comparativa de sistemas cloud.
  • Criando Cuervos habla del "embuste del cloud computing".
  • Nubeblog
  • Enrique Dans ha escrito muy frecuentemente sobre la tendencia del cloud computing.
  • El blog de Carr es otro imperdible a la hora de entender el gran cambio que supone el cloud computing.
  • Dreig ofrece una visión con la que no estoy en nada de acuerdo, pero que sirve para conocer otra forma de verlo.

 




miércoles, 15 de abril de 2009

Motor de búsqueda personalizado + Re-Busca

¿ Como crear un motor de búsqueda personalizado con Re-Busca ?

Utilizaremos el "Motor de búsqueda personalizado" de Google: http://www.google.com/coop/cse/

No es intención explicar todas opciones, pero haremos un repaso. 

 



Le hemos puesto de titulo Teruel centros educativos, y descripción la misma.

El problema es ahora decirle los sitios donde buscar.

Vamos a ver como Re-busca puede ayudarnos en esto. Acceso a la Web oficial Re-Busca

 


 
Probamos primero a buscar direcciones referentes a "Teruel centros educativos", y obtenemos el siguiente resultado




Los tres primeros resultados los "quitamos de la lista", los 2 siguientes los "pasamos al final" para luego repasarlos, los 2 siguientes también los quitamos, etc...
Voy "refinando" que sitios descarto, si ahora vuelvo a realizar una búsqueda con "teruel centros educativos" me saldría alguna referencia nueva, ya que al descartar algunas, toma en cuenta nuevas entradas. Como solo estoy interesado en buscar en webs de los centros educativos, busco también por otras palabras. "colegios teruel" pruebo con "colegios ESO teruel", también con "universidad teruel",
La verdad que he tenido que quitar bastante paja a mi parecer, pero aún así se ha creado una lista grande de elementos "potenciales".

Ahora paso a "configuración". La primera lista son direcciones a descartar. Si pulsamos "exporta URL"  en el texto de abajo aparecen las direcciones "propicias". Si Pulsamos "exportar excepciones" exporta las direcciones "descartadas".




Pulsamos "exporta URL" : Si seleccionamos todo el texto y "copiamos" en el porta papeles las direcciones favorables y lo pegamos en el cuadro de dialogo de las direcciones a buscar en nuestra "búsqueda personalizada", Dando al botón continuar, tendremos ya un buscador que buscará solo en las direcciones que nos han gustado.

Aún queda algo que mejora la búsqueda.  El menú de configuración de un buscador personalizado, ofrece muchas otras opciones:


Desde Sitios Web, añadimos o quitamos URL incluidas.

Como ya tenemos una lista de direcciones que no nos interesa en Re-Busca, pulsamos "exportar excepciones" .
Y en Sitios excluidos, incluimos la lista de direcciones excluidas.  Esto Refina más la búsqueda.

En Indexación , podemos hacer diferentes formas de "indexar" el motor, (También podemos copiar el resultado de "exporta URL" para pegarlos aquí)

Si necesitas más ayuda con la búsqueda personalizada, visita la página oficial  http://www.google.com/coop/cse/


En fin, la intención es hacer eso de forma automatizada. Para ello utilizaremos el API del motor de búsqueda personalizado de Google pero eso será en un siguiente capitulo.

lunes, 13 de abril de 2009

Re-Busca

Re-Busca es una herramienta  que realiza funciones de búsqueda Web en Google y Yahoo a la vez de una manera muy sencilla y aportando características propias que hacen la búsqueda más efectiva y reutilizable. Web oficial
Version Simple:
http://sites.google.com/a/miteruel.com/labs/proyectos

Version Extensa: http://sites.google.com/a/miteruel.com/google


1) Dual. Como he comentado , la primera característica que tiene es que la búsqueda la realiza en Google y Yahoo a la vez, desde una única pantalla consola muy sencilla y rápida.
Solo toma en cuenta los primeros 64 resultados de cada motor de búsqueda, y no visualiza las direcciones duplicadas. Si una dirección ya esta encontrada en Google no visualiza la encontrada en Yahoo. No se descarta añadir nuevos motores de búsqueda, pero creo que la simplicidad de hacerlo en solo 2, proporciona una ventaja de uso al usuario.

    Quizás si se añaden nuevos motores, puede hacer que se seleccione por el usuario  cuantos y cuales se usan de ellos.    


    Los resultados los muestra juntos y/o por separado,  como una lista de elementos que muestra titulo y descripción del sitio.

2) Filtros. Usando la opción quitar, se elimina el elemento de la lista mostrada, y se recuerda en la siguiente búsqueda. Cuando se busca algo, se prueba con distintas palabras similares o combinadas de diferente manera. Los elementos descartados, no se tienen en cuenta si se repite la búsqueda ,aunque sea con diferentes palabras, (¿Si ya se descarto la dirección en la primera búsqueda, para que sacarla de nuevo en una nueva búsqueda más refinada?)

3) Acumula resultados. Al quitar de la vista los elementos descartados se tiene un resultado más claro de sitios a tener en cuenta. Si se realiza una nueva búsqueda, los elementos nuevos se "suman" a los que se tienen, (pero no añade a la lista los elementos que ya existan o los ya descartados en el filtro). De manera que después de hacer varias búsquedas con diferentes combinaciones de palabras, tendremos una lista final de direcciones únicas relacionadas con lo buscado , cotejada en 2 buscadores diferentes y realizada con diferentes combinaciones de palabras. Esto da un resultado más amplio y claro que lo obtenido desde los buscadores.

4) Uso reutilizable. Como buscador, proporciona por supuesto la típica función de hacer click e ir a la página referenciada. Además puede crear un texto XML con estos resultados, de forma que se puede utilizar por una tercera aplicación o lector RSS. Es posible que como experiencia futura incluya la posibilidad de enviar estos datos a diferentes servicios cloud, empezando por Google docs,  Lector Rss de Google , Bloc de Notas... etc..
Una posible función sería también crear un motor personalizado de búsqueda, tomando los datos obtenidos o descartados.
Vista rápida. Puede incorporarse varias acciones de visualización de los elementos buscados. a) Mostrando, una detrás de otra, las páginas encontradas estableciendo un intervalo entre ellas. Por ejemplo cada 10 segundos muestra la siguiente, eso hace que al final de la búsqueda podamos ver un primer vistazo de las páginas encontradas, pasando de una a otra (como si fueran diapositivas a mostrar). Podría usarse la opción de "abrir todas" para mostrar todas ellas.( Cuando hay muchos elementos habrá que poner un límite de ventanas a abrir)

Sutilidades

Puede pensarse a primera vista que los dos motores sacarán resultados similares, pero nada más lejos de la realidad. En pruebas (no demasiado exhaustivas hasta el momento), en estos primeros 64 resultados solo hay un índice de coincidencias del 10% al 30%. Creo que esta gran diferencia de resultados entre uno y otro está relacionada con la forma de tomar la preferencia de idioma de la búsqueda.
[Especulando un poco, puede ser que  Google interpreta (si puede) el texto y devuelve páginas preferiblemente del idioma del texto y Yahoo no. También pudiera ser (aunque menos probable) que recuerde o reconozca las Ip de búsqueda y su idioma por defecto. No tiene que ver con hacerlo a través cookies, ya que la búsqueda es a través de funciones Flex, y sin ayuda de Javascript ]


¿ Como se hizo ?

Realizada en Flex (ActionScript). Me inspire en los ejemplos de búsqueda de google y Yahoo.

miércoles, 25 de marzo de 2009

cocomeme





Cómo me como el coco con cocomo.



 

Cocomo es un servicio Cloud de Adobe que permite añadir "capacidades sociales" en tiempo real dentro de cualquier sitio Web y crear aplicaciones Flex para Flash y Air.

Esta "Infraestructura de red" ,  permite integrar vídeo WebCam, chat de texto ( a través de una robusta API de mensajería de datos), audio (VoIP), pizarra colaborativa, escritorio remoto, compartición o intercambio de ficheros, presencia contextual etc..


 


La idea básica es que el desarrollador crea "habitaciones" donde  entran usuarios (al estilo de un chat típico) en donde se "comparten" estas herramientas.




Un uso muy apropiado es para crear "aulas virtuales"  donde el profesor (Host) "controla" lo que pasa en el aula, puede hablar o chatear con alumnos (visitantes), de forma que puede impartir "clases" mostrando el contenido de la pantalla de su ordenador a los asistentes, o incluso tomar el control del escritorio de los alumnos para ver si esta haciendo "bien" los deberes o ayudarles  directamente.




Sirve para hacer "presentaciones" publicas de productos , como centro de asistencia técnica, para crear juegos interactivos o simplemente para crear lugares de ocio en general donde se comparte el uso de un vídeo, mapa, documento y mucho más.




Cocomo está basado en componentes de cliente Adobe Flex, una infraestructura de servicios hospedados y un modelo de desarrollo simple pero poderoso. Esto significa que ellos te dan todo el soporte de servidor, con lo que el desarrollador solo se tiene que preocupar de crear el programa cliente, partiendo de componentes muy terminados.




Fue diseñado pensando en la seguridad, ya que los desarrolladores podrán construir aplicaciones multi-usuario que el usuario usará con más facilidad y confianza.



Se integra facilmente en aplicaciones existentes, y es fácil crear aplicaciones sociales nuevas que lleven alguna o varias de esas características.


Es un innovador servicio que está en el eje de lo que será el paradigma tecnologico del futuro: La computación en Nube ( o cloud computing) Una mezcla de servicios programables hospedados en "super-servidores", que proporcionan herramientas para que los desarrolladores "personalicen" los servicios prestados o programen nuevos servicios combinando alguno o varios existentes. El concepto "servicio cloud" es un termino que se "funde" con otras palabras como SAS (software como servicio) o PaaS (plataforma como servicio), etc...






Los enlaces siguientes le ayudarán a aprender y entender Cocomo:



  • Inscripción en Cocomo: http://www.adobe.com/go/cocomo
  • Cocomo Guía - Este documento ofrece una visión general de Cocomo.
  • Cocomo Referencia de la API - Este documento proporciona una lista de todas las clases, las funciones, propiedades, etc. Cocomo SDK.
  • Ejemplos Cocomo - Visite el portal del desarrollador de una cuenta de usuario y acceder a las aplicaciones de ejemplo. Una vez que el SDK descargado y descomprimido, vaya al directorio "ejemplo" en el paquete SDK.

     • Ejemplo Cocomo de mezcla de Yahoo! Maps:
http://blogs.adobe.com/collabmethods/2008/03/cocomo_yahoo_maps_editors_pick.html
     • Ejemplo Cocomo de mezcla de YouTube Livingroom:
http://blogs.adobe.com/collabmethods/2008/05/_another_cocomo_experiment_the.html
 



De acuerdo a Erik Larson, director de mercadotecnia y gerencia de producto en la Unidad de Productividad de Negocios en Adobe, “el lanzamiento de Cocomo, es otro paso al frente en habilitar a los desarrolladores para crear aplicaciones sociales ricas de tiempo real que cambiarán la manera en que la gente se comunica y colabora con los demás”. Adobe usa Cocomo en el software Adobe Acrobat® 9, así como en Acrobat.com para ofrecer a los usuarios finales acceso a colaboración en tiempo real de documentos PDF. Esta capacidad puede permitir a los usuarios conducir la navegación de un grupo sobre un documento PDF en tiempo real, lo que ayuda a que cada uno esté, literal y figurativamente, en la misma página.



Otras Cosas


Objetivos de desarrollo.

Objetivo 1) Personalizar la plantilla proporcionada en el portal del desarrollador. Traducir todos los elementos posibles, y crear una nueva plantilla personal.
Objetivo 2) Probar los ejemplos Flex proporcionados en el SDK. Compilar y alojarlos en diferentes páginas para realizar las pruebas.
Objetivo 3) Crear un "portal" de enseñanza virtual, dentro de la infraestructura de Google appengine y usando cocomo. La intención es relacionar e integrar las dos plataformas.

Cuando creia que cocomo era la herramienta definitiva para el control remoto, veo que precisamente el componente de compartir pantalla no viene incluido en el SDK.  

Aluden a restricciones por seguridad y que es un servicio prestado solo en acrobat.com.

 

Soluciones:

   1) Crear una plantilla simple para la conexion por pantalla dentro de directshow. No es exactamente lo que "buscamos", pero da solución a medias.

   2) Crear una aplicación que haga esto. Tengo que tirar mano de Gp y cocomo. Es un tema a estudiar

domingo, 5 de octubre de 2008




La nueva versión de Delphi incorpora una nueva actualización de IntraWeb. En un primer vistazo, el gran cambio en la nueva versión es el soporte de librerías Ajax externas.


 Empezando por  jQuery  que es una librería de código abierto JavaScript muy ligera que lleva poderosas herramientas para manipular elementos Dom, y realizar llamadas Ajax. Tiene cierta similitud con Prototype, que algo más veterana inicio la escuela de librerías JavaScript orientadas a objeto con potentes elementos de manipulación de listas DOM y llamadas asincronas controladas y bien encapsuladas. Pero con el tiempo, jQuery se ha ganado un espacio propio. Si bien tiene desarrollado algunos componentes de interface de usuario UI, aun  parece faltarle más componentes para crear una "aplicación" completa. jQuery gana adeptos, por cierto, Microsoft también ha tomado jQuery como elemento a incluir en su Visual Studio.



La nueva IW también añade soporte para Silverligth. Se ha discutido acerca de que si lo incorpora en realidad o no, ya que Silverligth esta expresamente diseñado para .Net, pero parece ser que pueden usarse algunos controles "compilados" dentro de la pagina IntraWeb.


También prometen integrarse con Dojo y quizás otras librerías.  De momento han incluido nuevas formas de "incluir" código o ficheros JavaScript a través de nuevas propiedades y eventos de los formularios. Ya se habla de una nueva "familia" de componentes TIWJQueryWidget ,TIWDojoWidget que su propio nombre ilustra la función que realizan.



Hadi hariri, habla de algunos de estos temas en  http://www.hadihariri.com/Blogs/Delphi/20080117.aspx En el articulo,  Hadi  pone un ejemplo de combinar un control IntraWeb, con un elemento UI de jQuery, pero salta a la vista que esta relación está un poco "tomada por los pelos", y desde luego seria difícil aplicarlo a otros controles más especializados o a otros más complejos como los Grid. 

Que nadie se ofenda si digo que falta un poco madurar a estas nuevas conexiones. Sigo creyendo que a IntraWeb le hace falta algo más de "flexibilidad" en cuanto a procesar comandos realizados por controles "externos" . La librería proporciona componentes perfectamente "encapsulados" que realizan muchas funciones de forma autónoma, pero tiene relativa dificultad en procesar otros comandos que puedan ser realizados por las librerías Ajax externas.



En este sentido siempre  he echado en falta una forma de responder un comando html, de forma sencilla, desde nuestro form. La alternativa es crear un componente explicito que responda a estas llamadas. Esto no es demasiado complicado haciéndolo bajo las "reglas" de Intraweb.
Pero las herramientas Ajax llevan normalmente su propia "filosofía" a la hora de gestionar y generar preguntas y respuestas al servidor: Esto suele chocar con la rígida forma de "interrogar" a nuestra aplicación IntraWeb. Como comentamos en el articulo
Ajax en IntraWeb no es fácil, pero desde luego no es imposible comunicar con nuestra Aplicación IntraWeb.
También ocurre, que las librerías Ajax, suelen crear su propia "Capa" de acceso a elementos Dom, que en nada coincide con la  forma de entenderlos por IntraWeb, eso hace difícil comunicar componentes "tradicionales" de IW con widgets externos.


    Un componente muy normal y usado en cualquier programa es la tabla o grid de datos. Todas las librerías Ajax que he revisado tienen algún componente para visualizar tablas de datos, y generalmente, ofrecen buen aspecto y opciones automáticas para ordenar columnas , moverlas o cambiar el tamaño. También ofrecen la posibilidad de editar los campos o configurar el editor del campo de cada columna. Este tipo de componentes aun son dificiles de integrar con IntraWeb, y algo me hace pensar que le va a resultar difícil durante algún tiempo aún.






    Este asunto de las tablas es un buen paradigma  para entender lo que necesitamos. La forma preferida de intercambiar datos de una librería Ajax, es a través de XML, con lo que un componente que maneje "Grids" debe sobre todo responder a diferentes comandos que le envía el widget del navegador, con cadenas de carácteres en formato XML, y esto aún no es cómodo de hacer.

    
    En fin, sirva esta pequeña introducción para justificar la existencia del componente "InterAjax", que es una alternativa para integrar diferentes librerías Ajax en la aplicación IntraWeb.
De momento tiene soporte para YUI, ExtJs, Dojo y Zapatec.



 


jueves, 4 de septiembre de 2008


Chrome, luces y sombras.
 

 

    El secretismo y "prudente silencio" que ha mantenido Google acerca de Chrome, no oculta el hecho que con este producto, Google ataca de lleno a la yugular de Microsoft.  Los propios "ingenieros" de google, llaman al nuevo producto una mezcla entre "sistema operativo" y navegador. La etiqueta de sistema operativo es totalmente excesiva y oportunista, de momento, pero deja entrever los intereses de Google. 


    La batalla final ha comenzado.  ( En la actualidad, Explorer cuenta con el 72 por ciento del mercado de los navegadores , a mucha distancia de Mozilla, que cuenta con el 20 por ciento, y Safari, con el 6,4 por ciento). 

    

    Google de mano de sus incondicionales seguidores y habiendo hecho "la pelota" a todos los desarrolladores de código abierto para que se sumen de una u otra manera a sus intereses esta perfectamente preparado y listo para entrar en combate. MicroSoft, que parece estar pasando un mal momento, tiene bastantes armas con las que defenderse tecnológicamente, pero carece del carisma actual de Google, y sobre todo carece del control del mercado de las búsquedas y google si, con lo que si el buscador quiere, puede hacer llegar sus productos a todos los ordenadores del mundo que lo utilizan como principal buscador de Internet.


    Se comenta, que google ha tenido que sacar el producto , con más prisas de las previstas ya que sin querer "alguien" publico el manual del producto, (que por cierto tiene formato de Comic), en google Books ( http://www.google.com/googlebooks/chrome/ )



    Después de cargar el flamante chrome, la primera impresión es positiva, y llama la atencion la "simplicidad" del navegador y los pocos "botones" que lleva.


    Sin embargo una de las cosas que me he "acostumbrado" a usar, que es el bloc de notas google, no puedo usarlo en chrome, ya que no he encontrando el "complemento" del mismo. Otros productos como Lively, tampoco tienen su "pluging" para chrome. Tampoco puedo ejecutar ningúnapplet Java. Ni siquiera en Google Analitics, aparece aun reflejado chrome como navegador. Llama la atención que para ser Google tan "previsora" en sus productos, no haya lanzado paralelamente actualizaciones para sus propios servicios, y poco o nada se comente del soporte Java, (aunque si que lleva "nativamente" soporte para Flash). A mi juicio este ninguneo "inicial" hacia Java por parte de Google hace decantar las preferencias del buscador hacia otras tecnologías, más concretamente : Flex. 



    Estas sombras, quizás producidas por "la nube" que se avecina y que mantiene toda la atención de los ingenieros de google, supongo que se se irán despejando en los próximos meses, de momento sigo como principal navegador con Firefox... 

             


    Chrome es de código abierto,( en c++), por lo que los programadores podrán desarrollar sus propias aplicaciones.  Siento la curiosidad de ver si realmente tienen puesto el código fuente para descargarse libremente. Busca la página oficial donde se publica el código fuente del proyecto en  http://code.google.com/chromium/


Pasando de las instrucciones que no indican claramente donde y como descargar el código fuente, probemos con el archifamoso SVN

Nos colocamos en un directorio donde queremos descargar chrome dentro de una carpeta del mismo y ejecutamos el comando, ejemplo:


j:google>svn checkout http://src.chromium.org/svn/trunk/src/chrome chrome

Maldita sea, al rato de estar actualizandose los ficheros encuentro el siguiente error:

svn: requerimiento REPORT fall¢ en '/svn/!svn/vcc/default'
svn: REPORT de '/svn/!svn/vcc/default': Could not read response body: Se ha forz
ado la interrupci¢n de una conexi¢n existente por el host remoto.   (http://src.
chromium.org)

Ahora entiendo porque recomiendan descargarlo en formato tar.gz  ( source tarball)

Sin embargo pruebo hasta 3 veces con el comando svn, y termina de descargar todo aparentemente, por cierto, comparado con descargarlo en tar.gzme ha resultado más rápido (aunque haya tenido que reintentar 3 veces, svn continua la descarga a partir del punto que paró).

Para compilarlo necesitamos recurrir a Microsoft. Podemos descargar la versión de Visual c++ 2005 de microsoft
Install Microsoft Visual Studio 2005 Service Pack 1 (download) o en nuestro caso Service Pack 1 para Microsoft® Visual Studio® 2005 Express

Por cierto, no he tenido Wobs de actualizar el parche para correr en Windows Vista. Gran desilusión!, tendré que probar a instalarlo en algún PC virtual corriendo XP.
Pero eso ya lo veremos otro capitulo, de momento no quiero seguir invirtiendo mi tiempo en compilar el programa y buscar errores para ellos, (que me paguen si quieres, jejeje)






martes, 2 de septiembre de 2008


La nube. 'Cloud computing'

La palabra informática de moda es 'Cloud computing', que se podría traducir algo así como 'nube computacional' pero desde luego no seria una traducción muy acertada.

Se trata usar diferentes servicios accesibles por diferentes dispositivos (ordenadores, PDA, moviles) para acceder a una información que reside en Internet.


* En fin amigo "Molina" (único lector aparente de este Blog), busca una expresión para definir "the cloud" en castellano y habrás pasado a la historia informática en mayúsculas.


Se trata de un concepto general que incorpora el software como un servicio , Web 2.0 y otros recientes, donde el tema común es la dependencia de Internet para satisfacer las necesidades de los usuarios, permitiendo a los usuarios acceder a estas nubes de servicios tecnológicos sin experiencia o conocimiento previo y sin tener control de la infraestructura que les apoya.


La mayoría de las infraestructuras informáticas nube está compuesta por servicios prestados a través de centros de datos de nueva generación que se basan en calculo y almacenamiento de datos, usando tecnologías de virtualización.

Su uso se incrementa por "el aumento de alta velocidad de ancho de banda" que permite recibir los mismos tiempos de respuesta de infraestructura centralizada a otros sitios.



* Una peña tiene su pagina web en la que se combinan blogs , fotos, vídeos y calendarios de los socios. Una hoja de cálculo compartida entre los miembros de una peña de fiestas a la que tienen acceso desde ordenador o movil a la misma hoja de calculo, con información de quién se encarga de qué. Durante las 'fiesta' se pueden hacer vídeos que pasas al ordenador y envías a youtube, o con una PDA, sacas fotos que envías a Facebook , Picasa o Flickr. Estos servicios pueden ser leídos automaticamente como RSS y ser usados en tiempo real por otros programas o mashup que combinen mapas, calendarios y otros elementos. De forma que puedes "dar envidia" casi en tiempo real a los peñistas que no hayan podido acudir a la fiesta, a través de información que se ha ido centralizando a través de diferentes sitios y formas.


Aunque este ejemplo suena esperpentico, entraña dificultades que hasta hace poco no estaban resueltas o se escapaban de los presupuestos de una pequeña peña.


Hay otros casos reales en los negocios donde se pretende conseguir este paradigma, cualquiera con mínimos conocimientos informáticos puede participar en el conjunto y teniendo los servicios prestados o alquilados el coste es mínimo. Por ejemplo, Google Apps proporciona aplicaciones de negocios en línea al que se accede desde un navegador web, mientras que el software y los datos se almacenan en los servidores.


Los servicios son accesibles en cualquier lugar del mundo, con la nube que aparece como un punto de acceso único para todas las necesidades de los consumidores.

La nube propone Estándares abiertos y software de fuente abierta. Los clientes por lo general no poseen la infraestructura, solo acceden y alquilan,

Al compartir la potencia de las computadoras entre varios inquilinos, las tasas de utilización se puede mejorar, y pueden reducir costes al tiempo que aumenta significativamente la velocidad de desarrollo de aplicaciones y la capacidad de los servicios en momentos pico de trabajo.


La nube está siendo impulsado por empresas como Amazon, Google, Salesforce y Yahoo! Así como los proveedores tradicionales incluyendo Hewlett Packard, IBM, Intel y Microsoft y aprobada por los individuos a través de grandes empresas, incluidas General Electric, L'Oréal, Procter & Gamble ,Valeo


De momento no tenemos ningún término en español y por lo que parece se va a quedar en inglés. Así que porque no buscamos un termino para definirla?