A correr, a correr, el virus de SharePoint está llegando!

Hace un par de días ha salido un reporte escrito por “CMS Watch” (http://www.cmswatch.com/), el “CMS Suites Reports”, en donde han aclamado que “SharePoint es un ECM virus”. CMS Watch es una firma de analistas en Norte América que evalúa tecnologías para manejo de contenido (CMS, Content Management Systems). La verdad sea dicha, es por primera vez en mi vida que he oído de esta compañía, aunque también tengo que decir que no es que me preocupe mucho lo que empresas de este tipo dicen, pues normalmente son pagadas por una u otra compañía para hacer que la competencia aparezca mal, muy mal preferiblemente… (Microsoft también lo hace, todos lo hace en el mundo de software…). Para los interesados, me he enterado del asunto por medio de un artículo aparecido en alguna parte de la que ya no me acuerdo, y sobre el reporte pueden leer en el sitio de CMS Watch mismo (http://www.cmswatch.com/About/Press/200712ECMvirus/).

Ellos han llamado a SharePoint de esta forma por la facilidad que le entrega a los usuarios para crear sitios y contenido en una intranet, lo que lleva a una “proliferación viral de instancias de contenido incontrolado…” (… dearth of Enterprise management services, leading to rampant, viral proliferation and instances of uncontrolled content, as well as major compliancy risks.”). Para sostener esta aserción, dan dos ejemplos, uno en donde en un banco en Norte América se encontraron 5.000 “instancias” (?) no controladas de SharePoint, y el otro sobre una empresa de energía que detectó 15.000 “instancias” en la misma situación.

A que se refiere CMS Watch con “instancias” de SharePoint no es claro, pero supongo que se refieren a sitios o “Site Collections”. En cualquier caso, lo que me ha llamado la atención del artículo es que compañías que pretenden ser “expertos” en un determinado tema escriben reportajes de este tipo para personas que no conocen el producto, sin tomarse el trabajo de hacer controlar lo que escriben por personas que realmente conocen como funciona la cosa. Así es muy fácil: yo me hago pasar por “experto” en “las posibles causas del embarazo de gallinas”, luego escribo un reporte diciendo que las gallinas verdes son mejores en criar pollitos de tres patas que las gallinas azules, de tal forma que todo el que esté empezando una criadero de pollos vaya directamente a comprar gallinas verdes. Lo que nunca voy a contar es que la empresa que ha creado las gallinas verdes me paga mensualmente un buen salario, pues eso afectaría mi reputación como conocedor de la ginecología de gallinas…

El asunto con creación de sitios en SharePoint es muy sencillo: si se le da permiso a todos los usuarios para crear sitios, en menos tiempo de lo que canta la gallina verde de la historia tendremos el servidor absolutamente lleno de sitios fantasmas. Pero es muy sencillo de solucionar: no hay que darle permiso a todo el mundo para crear sitios. Y, además, SharePoint tiene un mecanismo interno para prevenir esto: después de que un sitio no ha sido utilizado en determinado tiempo, SharePoint simplemente lo eliminará (avisándole primero al dueño, por supuesto).

Por otro lado, en cierta manera es verdad que SharePoint se ha convertido en un virus, aunque de una forma distinta a lo que CMS Watch dice: en el momento, todo el mundo está implementando SharePoint, empresas de cualquier tamaño, de pequeñitas a multinacionales, a lo largo y ancho del mundo. En este sentido es SharePoint un virus. Y, alrededor del virus, han estado saliendo todo tipo de nuevas compañías que diseñan, implementan y desarrollan para y con SharePoint. Es decir, el virus está generando todo una industria paralela de empresas y compañías; un buen ejemplo es “spsProParts” (http://www.spsproparts.net), una pequeña compañía (por el momento, pero con el potencial y la capacidad técnica para crecer rápidamente) que está creando soluciones innovativas para SharePoint… por el momento solamente ofrecen un par de componentes para SharePoint que rellenan funcionalidad que todo el mundo desea tener, pero me han dejado ver algunos otros productos que están desarrollando que en realidad nadie antes a creído posibles (no lo debería decir, pero de todas formas lo digo: dentro de poco saldrán al mercado con lo que ellos han llamado “Codename The Killers”, un sistema parecido al Business Data Catalog de MOSS, pero mucho más amistoso para utilizar, y con funcionalidad inexistente en el BDC de MOSS).

En fin, virus del tipo SharePoint desearíamos que nos llegaran con más frecuencia. No solo solucionan problemas reales de una forma efectiva, sino que ayudan a mover la economía haciendo que personas creativas agarren el toro por los cuernos, y empiecen a inventarse cosas interesantes…

Gustavo – http://www.gavd.net/servers/
Escriba un Comentario que me haga reir…

Trradiczion Ahutomatic de Teksto para SharrePunto

Como hace algunos días Jorge Serrano comentaba en su posting “El estrés de las tecnologías” (http://geeks.ms/blogs/jorge/archive/2007/12/09/el-estr-233-s-de-las-tecnolog-237-as.aspx), a Microsoft se le puede acusar de muchas cosas, excepto de no salir con algo nuevo cada dos días para aumentar nuestro estrés tecnológico. Por ejemplo, desde hace años están experimentando con traducción automática de documentos. Hay que decir que no es la única compañía que lo están haciendo… y por eso de las vueltas que da la vida, personalmente siempre me he enredado con chicas simpáticas que andan enrolladas con cosas de idiomas (Stupefyin’ Jones era [es] Periodista, Appassionata von Climax es lingüista…), por lo que de una u otra forma traducciones automáticas es un tema recurrente en casa… pero bueno, basta de desvaríos, al meollo del asunto…

Regados por aquí y por allá en el sitio de Microsoft se encuentran de vez en cuando documentos traducidos al español. Inclusive alguna vez estuvieron traduciendo los artículos de conocimientos base a nuestro idioma. Y cuando se encuentran descargas en español (como la del Service Pack 1 de WSS y MOSS, del que parece que TODOS los blogueadores del mundo se sienten obligados a contarnos que existe… señores (y señoras), por favor, paren de contarnos que el SP 1 ha salido… si no tienen nada que decir, por favor, no lo digan blogueando…), el texto es regularmente escrito en el idioma de la descarga. Y, por supuesto, los experimentos no se han detenido. Microsoft ha anunciado el “Proyecto de Traducción Maquinal de MSDN y la Librería TechNet para Productos y Tecnologías de SharePoint” (traducido por mí mismo, desde “MSDN & TechNet Library Machine Translation Project for SharePoint Products and Technologies”, sin ayuda de ninguna maquina).

El proyecto está en etapa piloto (hasta el 19 de enero del 2008) para ver cómo funciona la cosa; consta de dos partes: mostrar lado-a-lado en los dos idiomas los documentos traducidos y traducción de Wikies. La primera parte la pueden encontrar en el ejemplo de traducción del SDK de SharePoint (WSS y MOSS) al español en el sitio http://mtbeta.technet.microsoft.com/es-es/library/default.aspx?altlang=es-es. Sorprendentemente, el texto traducido es comprensible en su mayor parte, lo que indica que ya han superado la etapa de convertir palabra por palabra (“Dictionary-based”), o inclusive las técnicas estadísticas (como el que utilizó Google por años [Systran] hasta que no encontraron forma de mejorarlo). En la segunda parte del proyecto, la traducción de Wikies, desafortunadamente solo disponible en portugués (http://msdnwiki.microsoft.com/pt-br/mtpswiki/default.aspx ), permite que los usuarios mismos hagan sugestiones sobre mejoras en la traducción, lo que me hace pensar que están usando un sistema EBMT (“Example Based Machine Translation”)… ufff, me estoy yendo por las ramas otra vez…

Pero bueno, la cosa es que después de años de andar luchando para que Microsoft deje de pensar que todo el mundo entiende ingles, y que abandonen la arrogancia de publicar información solamente en ese idioma, parece que están viendo la luz y se van dando cuenta de que, por ejemplo, en Latinoamérica tienen un mercado de 300 millones de personas que les comprarían mucho más si la información técnica estuviera en el idioma que usan cada día…

En fin, viendo la traducción del SDK, nos enteramos que “Contiene un bounty de información técnica”, que “Graciously han decidido Office proporcionar contenido para esta prueba piloto” y que han escogido el español porque es uno de los “Idiomas que han alcanzado el MT Microsoft Research aprobado clasificación”.

Les deseo mucho placer en la lectura… si el SDK es a veces totalmente incomprensible y miserablemente poco informativo en ingles, ya se podrán imaginar lo que se van a encontrar en español…

Gustavo – http://www.gavd.net/servers/
Escriba un Comentario que me haga reir…

SharePoint y la Web Semántica (“Semantic Web”)

Estos días, entre reunión aburridora y fila en la autopista, me he estado leyendo el libro “The Semantic Web – The Real World Applications from Industry” de Jorge Cardoso y Martin Hepp, y he estado pensando cómo aplicar los conceptos de Semantic Web a SharePoint…

Para que no se tengan que leer el mamotreco completo, yo les refresco un poquito de que se trata el “Semantic Web”. Todo se trata de meta-data… información ya la tenemos en la Red… por montones… pero no la tenemos organizada, ni tenemos forma de organizarla… La Red tiene documentos, páginas de texto, imágenes, todo orientado a ser interpretado por humanos… La Web Semántica (pretende) hace(r) lo mismo, con la misma información, para que maquinas la interpreten, la organicen, nos la presenten de tal forma que podamos ver las relaciones entre la información, y de tal forma que podamos buscar algo y encontrar algo relevante…

Técnicamente hablando, de la misma forma que La Red (Internet) actual, la Web Semántica se basa en URL’s para poder encontrar las cosas y HTTP como protocolo, pero en lugar de usar HTML como lenguaje, utiliza RDF (Resource Description Framework). En realidad, la Web Semántica se trata de RDF… viéndolo sencillamente, RDL es una especie de XML, sin las desventajas de XML, pero también sin su flexibilidad. Veamos: si queremos describir una bebida en XML, podemos decir:

<Bebida>
    <Fabricante>Elixir de los dioses</Fabricante>
    <Tipo>Cerveza</Tipo>
</Bebida>

Pero también podemos describirla como:

<Bebida Fabricante=”Elixir de los dioses”>
    <Tipo>Cerveza</Tipo>
</Bebida>

E incluso como

<Bebida Fabricante=”Elixir de los dioses” Tipo=”Cerveza” />

RDF funciona con “Tripletas”, que para nuestro caso sería en general:

<Fabricante> <Tipo> <Valor>

Y en particular para nuestra bebida:

<Fabricante:Elixir de los dioses> <Tipo><Cerveza>

O, utilizando el Nombre de Espacio completo:

<http://www.FabricantesDeBebida.net/Elixir de los dioses><http://www.cervezas.com/tipos><http://www.wikipedia.com/cerveza>

Lo van viendo? Acabamos de decir: busque en el sitio “www.FabricantesDeBebidas.net” por el fabricante llamado “Elixir de los dioses”, luego entrégueme todos los tipos de bebidas que encuentre en el sitio “www.cervezas.com” y luego cuénteme que dice la Wikipedia sobre las cervezas que produce el Elixir de los dioses… probablemente el ejemplo no sea completamente valido, pero es solo un ejemplo que se me ocurre en el momento… y para los que se lo están preguntando, nó, todavía no he hecho ninguna cita con Alcohólicos Anónimos…

El problema con XML es que hay muchas formas para decir las cosas, y a las maquinas no les gusta eso. Además, si queremos juntar un record de bebidas con uno de comidas, lo único que obtendremos es un XML que no es válido. Con Tripletas es todo más fácil, todo viene en pares de tres (?)… si, por ejemplo usamos SOAP para realizar alguna acción, la sintaxis del XML es bastante complicada, llena de redundancias y de datos no utilizables. Tripletas dan toda la información de una manera más sencilla, en la forma que cualquier maquina idiota la pueda entender. Por el otro lado, Tripletas no tienen la flexibilidad (ni la elegancia) de XML…

En cualquier caso, para los interesados, muchos de los detalles sobre la Web Semantica los pueden encontrar por aquí y por allá en la Red. Semantic Web no es algo nuevo, desde hace varios años los teóricos de la informática están especulando sobre cómo hacerla, pero hasta ahora ha sido solamente eso, puro trabajo teorético. El libro que les menciono al principio es el primero que intenta sacar el problema de los ámbitos universitarios y aplicarlo en el mundo real. Hasta ahora los grandes fabricantes de software no han hecho prácticamente nada al respecto, pues los cambios con respecto a la tecnología actual son demasiado radicales. Por ejemplo, si buscan por “Semantic Web” en el sitio de Microsoft, encontrará 700 items (la mayoría repetidos), y si lo busca en nuestro buscador favorito encontrará 174.000. Los sitios que utilizan Semantic Web actualmente se pueden contar con los dedos de una mano… mejor dicho, con EL dedo de una mano: MusicBrainz (http://musicbrainz.org/), desde donde se pueden descargar canciones utilizando un lector especial que se encuentra en el sitio mismo. Aunque, la verdad sea dicha, la forma de trabajar del Astoria (http://geeks.ms/blogs/gvelez/archive/2007/11/28/como-se-sentir-237-a-sharepoint-en-el-astoria.aspx) de Microsoft suena muy parecido a lo que se necesita para hacer trabajar a la Semantic Web.

Pero bueno, en el hipotético caso de que alguna vez Semantic Web empiece a ser aceptada, como lo podríamos integrar con SharePoint? Fuera de los trucos de Astoria, la organización de SharePoint la podríamos describir directamente en Tripletas, por la sencilla razón de que todo en SharePoint esta en Listas. Así que la Tripleta seria más o menos de la forma:

<Lista><Elemento><Valor>

Que llevado a la vida real, aparecería como:

<http://MiServidor/MiSitio/Lists/MiLista><ElementoTitulo><ContenidoElemento>

O algo por el estilo…

En cualquier caso, todo no son más que especulaciones. Como va la cosa, es difícil que veamos algo de la Semantic Web en muchos años. De pronto en la versión SharePoint 2023 estemos utilizando consultas Linq con estructura Semantic Web, enviadas a través de Astoria para mostrar datos tridimensionalmente…

Gustavo – http://www.gavd.net/servers/
Escriba un Comentario que me haga reir…

Mr. Spock a Gustavo: “SharePoint? Humanos deberían ser más racionales…”

Pensando en Mr. Spock y su “Fascinante es una palabra que uso para lo inesperado”, hoy, entre reunión y reunión, me he puesto a jugar con “Vulcan”. Nunca ha oído hablar de Mr. Spock? Existe algún geek que no haya visto “Star Trek”? No importa, por si le interesa, Vulcan no solo es el lugar de nacimiento de Mr. Spock, sino también un nuevo lenguaje de programación…

Los viejitos entre nosotros se acordaran de “Clipper”, un lenguaje creado para programar sobre dBASE III, por allá en los años 80, que si no estoy mal, fue el primer lenguaje compilado (en lugar de interpretado), para trabajar con Bases de Datos. Luego, Computer Associates agarró la idea, le puso programación por objetos, le cambio el nombre a “Visual Objects” y lo saco al mercado. Desafortunadamente Visual Objects tenía un montón de problemas, y salió casi al mismo tiempo que la primera versión de Delphi y de Visual Basic 3.0, por lo que nunca tuvo mucho éxito, aunque todavía se sigue usando por aquí y por allá.

Vulcan es la última encarnación de Clipper-Visual Objects, y esta vez ha salido como uno más de los lenguajes DotNet (CLS [Common Language Specification] compliant), y se puede instalar y usar en Visual Studio, de la misma forma que CSharp o Visual Basic. De nuevo, por eso de que la historia se repite, la nueva versión de Vulcan ha salido casi al mismo tiempo que Visual Studio 2008… parece que no aprenden…

En el sitio de Vulcan.Net (http://www.govulcan.net/portal/) pueden encontrar toda la información necesaria, y bajar una copia para instalar en Visual Studio (2005, no instala bien en 2008 todavía).

Pero bueno, cual es la relación con SharePoint?

El desafío es sacar los conocimientos adquiridos hace años cuando programaba con Visual Objects y tratar de programar algo para SharePoint. Pues bien, resulta que no es tan difícil después de todo.

Después de instalar Vulcan, en Visual Studio se puede hacer un nuevo proyecto de la forma normal:

Primero hay que crear referencias a “System.Web” y “Microsoft.SharePoint”, y las directivas necesarias:

 

using System
using System.ComponentModel
using System.Security
using System.Security.Permissions
using System.Web.UI
using System.Web.UI.WebControls
using System.Xml.Serialization
using Microsoft.SharePoint
using Microsoft.SharePoint.Utilities
using Microsoft.SharePoint.WebPartPages

 

Vulcan no dispone de Intellisence, asi que hay que programar como los hombres (y mujeres, perdón) de verdad… Luego de las referencias necesitamos arreglar la seguridad si queremos hacer una WebPart:

 

[assembly: AllowPartiallyTrustedCallers]

 

Y luego la clase para hacer una WebPart:

 

CLASS MrSpockWebPart inherit WebPart

….. código

END CLASS

 

el constructor y, algo conocido para todos, el override de “CreateChildControls” van en el medio:

 

CONSTRUCTOR() CLASS MrSpockWebPart
    SUPER()
  RETURN

PROTECTED METHOD CreateChildControls() AS VOID CLASS MrSpockWebPart
    local myControl as LiteralControl
    myControl := LiteralControl{“Fascinating is a word I use for the unexpected. In this case, I should think ‘interesting’ would suffice”}
    self:Controls:Add(myControl)
  RETURN

 

Crear una llave para el nombre seguro (a la manera antigua, con la herramienta “sn”), compilar, instalar en SharePoint, y:

  

Funciona…

El mensaje es claro: Aunque siempre usemos uno de los lenguajes oficiales de Visual Studio (Csharp o Visual Basic) para programar en SharePoint, nada nos impide utilizar cualquier otro lenguaje, desde que produzca código compatible con el CLS. Los problemas no son de tipo de lenguaje, sino de que tan bien implementado es: la falta de Intellicense de Vulcan, por ejemplo, disminuye la productividad de una forma impresionante. A ver quién es el siguiente que se atreve a programar WebParts con el bien conocido Mono (http://www.mono-project.com/) o con ILDJIT (http://ildjit.sourceforge.net/) o con Portable.Net (http://dotgnu.info/)…

Gustavo – http://www.gavd.net/servers/
Escriba un Comentario que me haga reir…