Si quieres unirte al equipo de Beezy, ahora es el momento

13.5.15 / Comments (8) / by Enric Carrión

Llevo trabajando en Spenta desde hace ya más de 8 años y me considero un buen conocedor de su estructura, su funcionamiento y su espíritu. Mi visión puede no ser totalmente parcial, pero es producto del tiempo vivido, las experiencias y mi evolución en la compañía, aspectos de los cuales me siento en general más que recompensado.

Sabréis (y si no, lo aclaro) que Spenta es una empresa de servicios especializada en el mundo Microsoft y que, fruto del conocimiento que ha ido acumulando sobre ese mundo, creó un producto llamado Beezy, una suite para habilitar interfaz social en entornos colaborativos SharePoint.

El producto lleva en funcionamiento (y me refiero a funcionamiento en productivo en varios clientes, entre ellos Vodafone) desde hace más de 3 años, y los que tengáis contacto con start-ups y empresas de producto, conoceréis la dificultad de mantener algo tan frágil frente a tantas tormentas y embates en contra. Esto unido al hecho de que Spenta/Beezy no reciben oxígeno económico de ningún fondo de capital riesgo, se puede catalogar de proeza.


Beezy no sólo funciona, sino que además lo hace muy satisfactoriamente y es un producto de éxito, que compite en la liga de las principales soluciones del mercado: Jive, IBM Connections o Sitrion. Evidentemente en cuota de mercado juega un papel aún residual, pero cada día son más los clientes y los escenarios en que Beezy encuentra su encaje como alternativa a estas plataformas.

El año pasado no fue bueno, vamos a admitirlo sin paños calientes. Diversas personas muy valiosas y muy queridas en la compañía optaron por otra salida profesional, lo cual es totalmente comprensible. La compañía ha vivido pendiente del ciclo de ventas, que en el caso de las grandes corporaciones, es prolongado y muchas veces incierto, aunque nunca ha abandonado la apuesta por Beezy como estandarte de negocio.

Finalmente esta apuesta ha terminado dando sus frutos. El negocio generado durante estos últimos meses y las oportunidades surgidas alrededor del producto no sólo permiten su continuidad, sino que además nos sitúa en el camino de convertirnos en la plataforma social líder sobre tecnología Microsoft.

Bullshit aparte, esto quiere decir que hay inversión suficiente para mejorar y proyectar Beezy hacia un estado en que no haya llegado ningún otro producto del sector desde el ámbito tecnológico y de experiencia de usuario. Beezy ahora mismo ya es un producto cañero, y lo saben los que trabajan o han trabajado con él, con una arquitectura bien pensada, extensible, muy SharePoint-friendly, un motor de front-end en Backbone.js que se te cae la baba, con una velocidad de vértigo para implementación de nuevas features, con un ALM diseñado y mantenido exquisitamente. Bien, pues el siguiente paso es incorporar lo que nos falta para tener el sueño completo: integración completa con Office 365, Delve, Graph, Office Videos, multi-tenancy, interfaz completamente responsive, automatización de tests en front-end, integración con SignalR, adaptación al próximo SharePoint 2016 y, sobre todo, una batería inmensa de nuevas funcionalidades y escenarios que el product manager (y nosotros mismos, como primeros consumidores del producto) está deseando ver y probar.

El equipo de Beezy está formado por gente muy buena. Pero aún necesitamos más. Principalmente necesitamos personas que se arremanguen y disfruten con el desarrollo. A partir de ahí, la experiencia que podáis aportar en ASP.NET, SharePoint, Office 365, Azure, Javascript o CSS nos da margen para encontrar vuestra ubicación ideal y vuestra evolución profesional a largo plazo en Beezy.


La inversión de la que hablaba antes da para lograr un equipo muy grande (alrededor de 20 personas) y muy potente de producto. Subrayo "producto". El desarrollo real de producto en este orden de magnitud es casi anecdótico en nuestro país. Lo bueno de todo esto es que uno no necesita emigrar a Silicon Valley ni cambiar su plan de vida para participar de una aventura como ésta. Estamos en Barcelona y en Madrid, somos una "familia" bien avenida, no hay ningún organigrama ni barrera, nos vamos a tomar cañas después de salir y, sobre todo, nos lo tomamos con mucho humor. 

Otra vez, podéis creerme a mi o preguntar a cualquiera de mis compañeros o ex-compañeros y os contarán sobre los Hasselhoffs, los "socials", los Lyncs del miércoles al mediodía, las pizzas técnicas, las calçotadas... Todo eso engancha (a mi lleva enganchándome ya más de 8 años) y, aunque realmente el buen ambiente en el curro es algo que cuesta de transmitir a alguien ajeno, supongo que tendréis referencias personales al respecto. Si lo valoráis como algo positivo, y además, os suena bien el camino que tiene Beezy por delante, igual es momento de conocernos.

"Microsoft.SharePoint.SPException: The security validation for this page is invalid" al crear subsitios

26.9.13 / Comments (0) / by Enric Carrión


Holaaa qué tal. En SharePoint 2013 tengo una colección de sitios rebelde, procedente de una migración de 2010, que se resiste a dejarme crear subsitios con mi definición personalizada de sitio. El método SPWebCollection.Add me devuelve la ya consabida letanía:

Microsoft.SharePoint.SPException: The security validation for this page is invalid. Click Back in your Web browser, refresh the page, and try your operation again

Spoiler: he conseguido evitarlo sin recurrir a una ñapa demasiado gorda. Eso sí, enumero los métodos utilizados infructuosamente hasta dar con el fix adecuado.

  1. SPSecurity.RunWithElevatedPrivileges y todo dentro del contexto : no effect
  2. SPSite.AllowUnsafeUpdates / SPWeb.AllowUnsafeUpdates : no effect
  3. SPUtility.ValidateFormDigest / SPWeb.ValidateFormDigest : no effect
  4. SPWebapplication.FormDigestSettings.Enabled = false y luego dejarlo con el valor original : imposible, dado que mi cuenta de pool de aplicaciones no es farm admin, con lo cual no tiene acceso para realizar esta operación. En general, esta restricción de permisos es la práctica recomendada, es decir que tomen nota los señores que publican en MSDN: http://blogs.msdn.com/b/navdeepm/archive/2010/04/29/microsoft-sharepoint-spexception-the-security-validation-for-this-page-is-invalid-in-sharepoint-2010.aspx
  5. Deshabilitar "Web Page Security Validation" en las General Settings de mi web application : tiene efecto, pero no es una buena solución para un entorno productivo.
  6. Decompilar el método SPRequestInternalClass.MoveUrl, que en mi caso es el que está provocando la excepción: método no administrado. Vuelva usted mañana.

Y ahora sí, la solución.
HttpContext.Current.Items["FormDigestValidated"] = "false";
Esto antes del código de creación del subsitio, evita la excepción anterior. Como solo afecta al contexto de esa petición en particular, no lo considero demasiado nocivo. Y dado que es lo único a lo que puede uno agarrarse... compro.



SharePoint 2010 CU: "Error en la instalación de este paquete"

19.9.13 / Comments (0) / by Enric Carrión

Experimento para ver cuánta gente googlea esto. En los últimos Cumulative Updates de SharePoint Server 2010, el fichero ZIP de hotfix que se baja uno contiene no solo el .EXE de instalación sino también el ficherito .CAB adicional:
ubersrv_1.cab
Atención porque es muy fácil olvidarlo o borrarlo por accidente. Ese cabinet file es una dependencia del .EXE, con lo cual, si lo ejecutáis sin esa dependencia en el mismo directorio, se ve a quejar amargamente:
"Error en la instalación de este paquete"
Y además en el idioma de nuestra configuración regional, no en el idioma de instalación de producto, lo cual despista aún más. Menos mal que, antes de repetir la descarga de más de 1GB, pensé en googlear y encontré este amable post de Technet que lo explica con mucho cariño y comprensión ("The installation of this package failed"):

http://blogs.technet.com/b/praveenh/archive/2013/06/18/the-installation-of-this-package-failed-error-while-installing-april-2013-cu-kb-2726992-for-sharepoint-2013.aspx

PD: comprobad que tengáis espacio suficiente de disco, también, De nada.

Beezy, ahora para SharePoint 2013

19.9.13 / Comments (0) / by Enric Carrión


Beezy, la red social corporativa basada en Microsoft SharePoint y, a la vez, el proyecto en que llevo implicado personalmente desde hace ya más de un año, ve la luz en su versión SharePoint 2013.

El producto empezó en SharePoint 2010 como una forma de dotar de capacidades sociales a una plataforma meramente organizativa. Con el advenimiento de SharePoint 2013 y la adquisición de Yammer por Microsoft, el reto de Beezy a lo largo de estos últimos meses ha consistido en analizar las nuevas funcionalidades sociales ofrecidas por la compañía de Redmond y utilizar ese análisis para potenciar y complementar el producto, de cara a ofrecer un Beezy que realmente ofrezca a SharePoint toda la funcionalidad social que un usuario realmente espera, teniendo en cuenta la elevada y profunda adopción de las aplicaciones de este tipo fuera de nuestro entorno laboral. Los empleados de una compañía, sin duda, no mostrarán menos grado de exigencia en una herramienta empresarial, y a esos requisitos va dirigida la nueva versión de Beezy.


Podéis obtener toda la información del lanzamiento en http://www.beezy.net/Sharepoint-2013, o más detalladamente en el blog de producto, del mismo modo que podéis conocer la nueva web de producto, recién estrenada, en http://www.beezy.net.

Un agradecimiento sincero a todos los integrantes directos e indirectos del proyecto, por conseguir llevar a cabo un objetivo tan ambicioso como éste. El resultado ha merecido la pena, no cabe duda.

Obtener el tamaño de subsitios de SharePoint programáticamente

10.4.13 / Comments (0) / by Enric Carrión

La página Storage Metrics (/_layouts/storman.aspx) fué recuperada en SharePoint 2010 SP1 para ofrecer una vista granular del contenido de una colección de sitios respecto a tamaños y porcentajes de utilización. La manera de recolectar y mostrar esos datos fue optimizada: un job timer “Storage Metrics Processing” (ejecutado por defecto cada 5 minutos) calcula los datos para que después puedan ser directamente presentados en la página.

image

Y te preguntarás, y con motivo, ¿Y si yo quiero explotar estos datos programáticamente? El caso más directo es querer controlar el tamaño de un subsitio para de alguna manera monitorizarlo o generar alertas sobre él. Es decir, simular subsite quotas, esa funcionalidad tan anhelada y de la que el equipo de SharePoint se reitera en privarnos de ella.

Bien, aunque el modelo de objetos no ofrece un método directo para obtener esa información (el único método parecido es SPSite.StorageManagementInformation, pero fue declarado obsoleto por ineficiente), podemos echar un vistazo al código fuente de la página y veremos como el truquillo de los desarrolladores de Microsoft es usar un método internal SPSite.GetStorageMetrics. Con lo cual deberemos recurrir a Reflection, pasándonos por el forro el contrato de la API que ofrece la plaforma, pero consiguiendo lo que queremos, al fin y al cabo. ¿Es una mala decisión? Depende del uso que le demos y de si asumimos las consecuencias de ello.

Un código como el siguiente nos servirá para obtener una tabla de elementos (retornada con el tipo interno SPStorageMetricsResult) que representa la información mostrada en la página “Storage Metrics”. De ahí solo tendremos que acceder a los elementos y recuperar su propiedad TotalSize.

using (var site = new SPSite("http://server"))
{
const BindingFlags bindingFlags = BindingFlags.Instance | BindingFlags.NonPublic;
var methodInfo = typeof(SPSite).GetMethod("GetStorageMetrics", bindingFlags);
var type = Enum.ToObject(typeof(SPSite).Assembly.
GetType("Microsoft.SharePoint.SPSite+StorageMetricsOrderByColumn"), 0);
var result = methodInfo.Invoke(site, new [] { string.Empty, type, false });
}

Mis blogs de cabecera (II)

3.4.13 / Comments (2) / by Enric Carrión

Hace ya mucho de la parte uno de esta entrada pero es de justicia añadir otras referencias técnicas con idénticos honores a las mencionadas anteriormente. Y por supuesto, a parte de referencias, todos ellos majísimos compañeros en Spenta.


  • DeXrm, de Atilio Rosas, fabuloso experto en Dynamics CRM/XRM, todoterreno en el mundo Microsoft y acérrimo admirador de SuperCholo.
  • Jorge Serrano - MVP Visual Developer, de la Institución, del inapelable Jorge Serrano, ese señor (¿te puedo llamar señor? :P) que disfruta como nadie de la tecnología y es capaz de contagiar tamaño entusiasmo a cuantos le rodean.
  • Sin SharePoint no hay paraíso (quién no conoce este blog), de mi admirado Miguel Tabera, el único capaz de manipular los pliegues del espacio-tiempo para que SharePoint, Office 365 o InfoPath hagan lo que él quiera.
  • Melerin 2.0, de Sergio Melero, portento de .NET y de las nuevas plataformas de MS, creador de la aplicación AlcoholTest. Todo un innovador tecnológico y además culinario. 

¿Me dejo a alguien...?



Eliminar caché de SharePoint Designer

25.2.13 / Comments (0) / by Enric Carrión

Si habéis re-creado un sitio por completo y véis en Designer como supuestamente aún hay ficheros tocados o checked out, es que la caché de Designer os la está jugando. También, cuando usáis unas credenciales y queréis cambiar a otras, puede que Designer se niegue en redondo y te logue automáticamente con las antiguas.

Para todo eso y mucho más:
del /f /s /q "C:\Users\jovi\AppData\Local\Microsoft\WebsiteCache\*.*"
del /f /s /q "C:\Users\jovi\AppData\Roaming\Microsoft\Web Server Extensions\Cache\*.*"
Thanks to Jordi Vilà.