lunes, 25 de febrero de 2013

Indexación de contenidos infinita en SharePoint 2013

Hoy me he encontrado con la necesidad de tener funcionando en mi entorno de desarrollo el servicio de búsquedas y, para mi sorpresa, he visto que algo no acababa de funcionar del todo bien. Después de horas de espera, la indexación de contenidos no terminaba ni parecía encontrar ningún elemento. La topología de la granja es simple y no parecía haber ningún error en los logs de SharePoint ni en el visor de sucesos. No obstante, había una imagen que no me acababa de convencer.

image

Como podéis observar, había bastantes avisos en la configuración de la topología del servicio de búsqueda que podrían estar causando el problema. Aparentemente, o hubo algún error a la hora de ejecutar el asistente de configuración, o dicho asistente deja el servicio a medio configurar. La solución pasaba por ejecutar el siguiente script de powershell:

$host = Get-SPEnterpriseSearchServiceInstance -Identity "s-ps1"

Start-SPEnterpriseSearchServiceInstance -Identity $host

Get-SPEnterpriseSearchServiceInstance -Identity $host

New-SPEnterpriseSearchAdminComponent -SearchTopology $newTopology -SearchServiceInstance $host
New-SPEnterpriseSearchContentProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $host
New-SPEnterpriseSearchAnalyticsProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $host
New-SPEnterpriseSearchIndexComponent -SearchTopology $newTopology -SearchServiceInstance $host -IndexPartition 0

Y sí, antes de que me lo digáis vosotros, sé que es un error configurar una granja utilizando el asistente. En cuanto tenga por la mano AutoSPInstaller para SharePoint 2013 podré decir aquello de: Lo siento, me he equivocado, y no volverá a pasar ;)

martes, 22 de enero de 2013

Libros de SharePoint en español

Estas navidades he tenido la oportunidad, al fin, de leer dos libros que tenía pendientes en mi estantería desde hacía ya varios meses. El objetivo que me marqué al inicio de la lectura era determinar si podía utilizarlos como respuesta a una pregunta con la que me suelo encontrar bastante a menudo: ¿Cómo empiezo con SharePoint? En este artículo podréis leer mis conclusiones al respecto.


SharePoint Foundation 2010: Construir una Intranet colaborativa en PYMES
Sin lugar a dudas es un libro que me ha sorprendido gratamente. Imagino que por deformación profesional, cuando hablo de SharePoint siempre imagino sistemas complejos y grandes organizaciones y un libro cuyo título contenía la palabra PYME era como un ataque a mis principios. De manera escéptica comencé a leer las primeras páginas y el enfoque simplificador desde el cual trataba cada uno de los temas contenidos en el libro me llamó la atención. Si ya conoces SharePoint, has trabajado con él, y estás buscando profundizar, este libro no es para ti. Pero si estás buscando iniciarte en el tema o si tienes interés en hacer tu primera instalación de la versión gratuita de SharePoint, antes de perder horas y horas buscando información en internet te recomiendo echarle un ojo a este libro.

SharePoint 2010: Desarrollo en .NET para personalizar SharePoint
A diferencia del anterior, sobre este libro ya tenía alguna que otra referencia y, por lo tanto, sabía más o menos lo que me iba a encontrar. A pesar de que creo honestamente que los autores han hecho un gran trabajo para tratar de explicar todo lo que hay que saber para desarrollar para SharePoint 2010, y a pesar de que creo que es una opción interesante a tener en cuenta, no lo recomendaría como libro para empezar en este mundo. Si no conoces SharePoint, será muy complicado que a través de este libro puedas llegar a entender cuándo y para qué necesitarás aplicar lo que en el libro se explica. Por otro lado, si conoces SharePoint pero no tienes una buena base de .NET, a mi entender te resultará complicado sacar un buen rendimiento de las explicaciones. Si conoces SharePoint, y tu base de .NET es buena, seguramente sí puedas sacar un buen rendimiento a este libro para tener, a vista de pájaro, un resumen de prácticamente todas las cosas que puedas hacer desarrollando para SharePoint.


Resumiendo, buenos libros en castellano sobre SharePoint para ser tenidos en cuenta definitivamente a la hora de aconsejar puntos de entrada a la plataforma. Ediciones Eni ha donado a SUG.CAT un ejemplar de cada uno de estos dos libros por si alguno de vosotros quiere echarles un vistazo. Si alguien está interesado en este material, o en cualquier otro material del grupo de usuarios, que no dude en ponerse en contacto con nosotros.

viernes, 27 de julio de 2012

Mi primer SharePoint 2013 en minutos…

Como a bien seguro todos sabéis ya, SharePoint 2013 is coming y, como no podía ser de otra manera, viene cargadito de novedades. No os voy a engañar, aunque ya he visto algunas cosas, no he podido jugar todo lo que me habría gustado, y eso va a cambiar en breve. En este primer artículo os pienso explicar el primer paso que he dado en esa dirección, por si alguno de vosotros quiere seguir mi camino. Objetivo: poder jugar con SharePoint 2013 a la mayor brevedad posible, y con la menor cantidad de recursos disponible. La solución por la que yo he optado es CloudShare.  Tenéis la opción de acceder a recursos de manera gratuita durante un periodo limitado de tiempo y, disponer de una máquina con SharePoint 2013 es cuestión de minutos. ¿Cuáles son los pasos que tengo que seguir para hacerlo? A continuación…

Antes de que me preguntéis, Azure también lo consideré como opción. Tiene algunas cosas que me atraen más que CloudShare pero, a día de hoy, no tiene ninguna plantilla en la galería con SharePoint 2013 instalado y ahora mismo lo que quiero es jugar YA. Con tiempo crearé una máquina limpia en Azure, instalaré SharePoint 2013, y documentaré el proceso apropiadamente en este blog, por supuesto.

Si ya tenéis cuenta en CloudShare seguramente este artículo no os será de mucha utilidad. Si no es así, los pasos que necesitáis seguir para tener una máquina funcionando con SharePoint 2013 son los siguientes:

Acceder a http://cloudshare.com/Free-Trial-Registration, rellenar y enviar el formulario que aparece. Ojo, cuando os pregunten vuestro perfil, indicad que sois mayoritariamente usuarios de SharePoint. Más adelante veréis por qué.

image

Directamente tras enviar el formulario accederéis a una pantalla desde la cual podréis crear todas las máquinas que queráis usando una lista enorme de plantillas. En este caso, escogeremos SharePoint Server 2013 y crearemos la máquina. No tardará más de 5 minutos en estar operativa.

image

En la siguiente figura veréis el por qué de la decisión de decir que sois un perfil de usuario mayoritariamente de SharePoint. Seguramente si hubieseis escogido Windows sería lo mismo pero tenemos que llevar con orgullo la pegatina de SharePoint en nuestra gorra, ¿no?

image

Antes de comenzar a jugar, desplegad las opciones que aparecen al pulsar el botón Edit Environment y pulsad el botón Edit hardware.

image

Permitidme utilizar ahora un tecnicismo: El burro grande, ande o no ande. Si tenemos 16GB de RAM y 300 GB de disco duro, habrá que utilizarlos. Total, vais a pagar lo mismo y seguro que vuestras pruebas lo agradecen.

image

La máquina se reiniciará en el momento que guardéis los cambios. Cuando termine de reiniciar, bastará que pulséis el botón View Machine.

image

Podéis conectaros a la máquina por RDP o a través de la misma web si instaláis un complemento en el navegador. Yo os lo recomiendo, puesto que mientras estáis en la web la máquina estará disponible. En el momento que cerráis la ventana o en el momento que accedéis a través de RPD, transcurridos unos minutos la máquina entra en estado de suspensión.

image

Ahora, ¡A JUGAR!

jueves, 7 de junio de 2012

¿Cómo que: “The system cannot find the path specified”?

Estos últimos días he estado peleando con un asunto que me sacaba completamente de mis casillas. Aquel tipo de errores que aparentemente no tiene ningún sentido ni razón de ser. El asunto era que la solución no se compilaba correctamente por este error.

"C:\hg\Beezy\Domain.Tests\Domain.Tests.csproj" (default target) (14) ->
(RestorePackages target) ->
  C:\hg\Beezy\.nuget\nuget.targets(58,9): error : The system cannot find the path specified. [C:\hg\Beezy\Domain.Tests\Domain.Tests.csproj]
  C:\hg\Beezy\.nuget\nuget.targets(58,9): error MSB3073: The command ""C:\hg\Beezy\.nuget\nuget.exe" install "C:\hg\Beezy\Domain.Tests\packages.config" -source "" -o "C:\hg\Beezy\packages"" exited with code -1. [C:\hg\Beezy\Domain.Tests\Domain.Tests.csproj]

Lo extraño del caso es que el fichero C:\hg\Beezy\Domain.Tests\Domain.Tests.csproj realmente existía, y el proceso tenía acceso total al fichero. Raro. Además en todos los demás entornos, incluído el entorno de integración continua, todo funcionaba a la perfección. De todas maneras, como esto no me impedía seguir trabajando con normalidad porque el resto de proyectos compilaban, me molestaba, pero no hasta el punto de obligarme a solucionarlo en el momento.

Hoy, finalmente ha habido algo que me ha obligado a tomar cartas en el asunto. He abierto un símbolo de sistema y me he encontrado con esto:

Microsoft Windows [Version 6.1.7601]

Copyright (c) 2009 Microsoft Corporation. All rights reserved.

The system cannot find the path specified.

Por aquí ya no paso, una cosa es que no me dejes compilar, pero otra cosa es que me des un error en toda la cara cuando lo único que te estoy diciendo es que abras una humilde consola de comandos. En ese momento he empezado a buscar soluciones y, después de un buen rato, he dado con este artículo:

http://carol-nichols.com/2011/03/the-system-cannot-find-the-path-specified/

Las coincidencias en cuanto a mensaje y en cuanto a precedentes me han hecho prestarle una atención especial, hasta el punto que he visto que describía y solucionaba perfectamente mi problema. Podéis ver el artículo, que merece la pena. Yo aquí os voy a hacer un resumen del problema y os voy a dar directamente la solución:

Problema: durante el proceso de instalación de Ruby en esta máquina tuve que instalar ANSICON. La instalación la realicé desde la carpeta de descargas. Hace poco, haciendo limpieza, pasé la carpeta que había descargado a una carpeta más adecuada pensando que nada pasaría.

Solución: O bien vuelves a poner la carpeta donde estaba, o bien abres el registro y buscas la clave HKCU\Software\microsoft\Command Processor\AutoRun y la cambias consecuentemente.

jueves, 24 de mayo de 2012

Pasado, presente y futuro de los grupos de usuario

Bueno, aunque el título de este artículo queda muy bonito en realidad voy a hablar muy poco de pasado y de futuro y mucho de presente, ya que es el presente lo que ha motivado que me ponga a escribir esto. El pasado no lo conozco demasiado bien, y el futuro no lo conoce nadie, pero el presente lo resumo con esto, y omitiré nombres y empresas para que no influya en el relato:

Ayer por la tarde el Grupo de Usuarios de SharePoint de Catalunya organiza un evento gratuito de 2 horas para el que, además de dos ponentes de Barcelona traemos a un ponente de lujo de Madrid. La temática y los productos cubiertos son muy interesantes y el nivel altísimo. Además, a tenor de lo que dice mi buzón de LinkedIn, hay interés en el mundo empresarial y necesidad de gente que domine estas tecnologías. Resultado: vienen 4 gatos, todos ellos compañeros de empresa de los ponentes (bueno, y una única persona de otra empresa pero que curiosamente es uno de los fundadores del grupo de usuario).

Estos son los hechos. Ahora voy a exponer un posible atenuante: el evento se hacía en horario laboral (de 16:00 a 18:00). De todas maneras no creo que sea una causa aceptable porque el último evento del mismo grupo de usuarios se realizó de 18:00 a 20:00 y tuvimos un resultado similar.

Y a partir de aquí empieza la parte de opinión personal. Sin querer emitir ningún juicio de valores, las causas a las que yo puedo achacar la baja asistencia al evento son las siguientes:

  • Empresas y personas que no se han enterado del evento por falta de marketing.
  • Empresas que no permiten a sus empleados asistir a este tipo de eventos por parecerles poco productivas.
  • Personas que no tienen el interés suficiente por este tipo de asuntos o que no están dispuestas a destinar parte de su tiempo personal.

El primero de los puntos seria responsabilidad nuestra directa. Hay que reconocer que ninguno de los organizadores del evento somos estrellas mediáticas y que lo único que hemos hecho para promocionar el evento son unos cuantos mensajes en Twitter, anuncios en nuestros blogs y en el grupo de LinkedIn. Es posible que no sigas ninguna de estas vías de comunicación (pero eso me llevaría al punto 3) pero lo que sí es cierto es que había 17 personas apuntadas al evento y la mayoría de estas personas no se presentaron. Sí, ya sé que esto pasa siempre, pero eso no quita que esté mal. Si llegamos a ver que ninguna persona ajena a nuestras empresas iban a venir hubiéramos hecho un evento interno y punto. O hubiéramos quedado directamente en un bar para intercambiar opiniones, ya que en general las personas que vienen a este tipo de eventos son precisamente los que menos necesitan las charlas técnicas y más necesitan la discusión en si.

El segundo punto no deja de confirmar un mensaje que hace tiempo que tengo claro. Estoy viviendo y trabajando en un país en el que se le da una importancia mínima a la formación de las personas. Las mismas empresas que no permiten a sus empleados asistir a una formación gratuita de 2 horas sobre Windows 8 y SharePoint son aquellas que después les dan un proyecto que involucre alguna de estas tecnologías y mandan a la persona que tienen libre a los leones con una tarjeta en la frente que dice: Experto en Windows 8 y SharePoint. También son aquellas que mes sí mes también se ponen en contacto contigo por LinkedIn tras hacer una búsqueda del término “SharePoint” porque tienen una propuesta que seguramente será de tu interés. ¿Cómo no te va a interesar nuestra propuesta para un proyecto de 2 meses en un cliente buenísimo que quiere ponerse eso de Sharepoint? Además, seguramente después de esos 2 meses tendremos muchos más proyectos de eso de Sharepoint.

El tercer punto es posiblemente el que más me molesta. Día sí día no escucho que hay mucha gente quemada con su trabajo, gente que se ha quedado en paro, gente que querría trabajar con cosas chulas y/o de una manera chula. También mucha gente que pregunta en los foros (esto me parece muy bien) y gente que te envía mails directamente con consultas (esto no es que me parezca mal, al final tienes que buscarte la vida de una manera o de otra, pero no me parece lo más adecuado). Yo me pregunto dónde está toda esa gente en momentos como éste. Señores, en estos eventos se puede aprender más o menos, pero lo que sí se puede hacer seguro es un poco de networking. Si estás buscando trabajo ya sea porque no tienes o porque no te gusta el que tienes, preséntate y comparte tus inquietudes. Si quieres conocer cosas más interesantes de las que haces, ven a escuchar lo que te podemos contar o propon otros temas. Si no pones un poco de tu parte, tampoco es normal que estés todo el día quejándote de tu situación (lo siento pero es mi opinión)

Quería acabar este artículo con mis conclusiones acerca de todo esto, pero me voy a guardar mi opinión. Ayer tuve la oportunidad de discutirla delante de unas cervezas (y la cola zero de rigor) con los que siempre están ahí (gracias, por cierto… si no fuera por vosotros seguramente ya me habría rendido y me limitaría a grabar screencasts para colgarlos en el blog)

Por cierto, evidentemente algunos de vosotros tendréis vuestras razones para no venir, faltaría más. Mi crítica es a nivel general y no quiero que ahora os sintáis todos ofendidos y me vengáis con: “cabrón, yo tenía una entrega ese día y no podía ir”. Los que estáis en esta situación seguro que me entendéis y no os dais por aludidos.

jueves, 10 de mayo de 2012

[EVENTO] SUG.CAT: SharePoint 2010 desde todo tipo de dispositivos

¿Tenéis SharePoint en vuestra organización y os están pidiendo desarrollar aplicaciones móviles que consuman sus datos y sus servicios? ¿Queréis información sobre cómo deberíais atacar este tipo de desarrollos? No os podéis perder, el próximo miércoles 23 de Mayo, de 16:00 a 18:00 en las oficinas de Microsoft Ibérica en Barcelona el evento que desde el Grupo de Usuarios de SharePoint de Catalunya (SUG.CAT) estamos preparando.

Contaremos con la presencia de dos pedazo de cracks: Edin Kapic que estuvo de ponente en la última SharePoint Conference en Berlín y que últimamente no ha parado de dar charlas por media Europa sobre SharePoint y Windows 8 y Luís Ruiz Pavon, el tio más potente de .NET que yo he llegado a conocer, y que viene expresamente de Madrid a estar con nosotros y explicarnos como construir APIs REST sobre SharePoint. Yo también aprovecharé para hacer una pequeña sesión (ya me conocéis, soy como Pablo Motos del hormiguero y si no salgo a hacer el indio no me siento satisfecho)

En fin, os dejo aquí el link de registro, ¡no os lo perdáis!

https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032513734&Culture=es-ES

Por cierto, después del evento tenemos pensado hacer unas SharePints donde podremos reunirnos y hablar distendidamente sobre el tema del evento y sobre cualquier otro tema que queráis.

martes, 24 de abril de 2012

Disponible el material de mi sesión del GAPZ2012

El pasado sábado 21 de Abril tuve el placer de asistir como ponente al evento Geek-â-Paloozaaa 2012 en Andorra. Allí pude compartir escenario con cracks como David Nudelman, Marc Salvador, Jose Luís Latorre y Eduard Tomàs, siempre bajo la atenta mirada del gran Lluís Franco, anfitrión de lujo y, como muestra, aquí os dejo un video de una entrevista que le hicieron.

http://vimeo.com/40775785

Podéis ver toda la información del evento aquí y, si no me equivoco, en breve podréis descargar los videos de las sesiones. Estad atentos porque iré informando de más novedades al respecto.

Todos los que pudisteis asistir sabéis que, por motivos de tiempo, pasé por alto muchas de las slides con la promesa de publicarlas lo antes posible. Como lo prometido es deuda, aquí tenéis la presentación de mi sesión.

https://skydrive.live.com/?cid=7127a829d27ab782#!/view.aspx?cid=7127A829D27AB782&resid=7127A829D27AB782%21727