ACS Blogs

A blog site for Architecting Connected Systems staff to tell the world about their exploits in
SharePoint 2007/2010/2013, Windows Workflow Foundation (3.0/4.0) and other great technologies!
Welcome to ACS Blogs Sign in | Join | Help
in Search


  • Videos - K2 vs Nintex - Want to know the real difference between the two? Here ya go!

    Now that I have access to just about every 3rd party ISV software for SharePoint (K2, Nintex, VisualSP, ConceptSearch, Ephesoft, KnowledgeLake, etc, etc, etc), I have been able to install and configure all of them. And in most cases, I have automated the install of all of them (more on that in a later blog post after our new site goes live).  Due to this ISV software exposure, I was asked by some individuals to do a K2 vs Nintex comparison video.  Well, it takes more than just one video to really show the differences between the two.  So, here are a set of videos that you can review to see what the real differences are.  This is the list of videos that I will be posting in the next few days:

    • Headsup Install ( Videos : K2 vs Nintex)
      • Winner - Nintex
      • Why?
        • Nintex install takes around 10 minutes total for all components
        • Nintex install is simple .NET installer that adds solutions to your farm (and with Nintex Live, two windows services)
        • Nintex doesn't need a license key to install and configure
        • K2 install takes over an hour, and in many cases, up to 3 to get install properly
        • K2 requires a license to install it
        • K2 install has multiple components, each requiring much more time to install than the respective Nintex parts
    • Headsup Configuration\Admin UI (Videos - K2 vs Nintex)
      • Winner - Nintex
      • Why?
        • Nintex is SharePoint feature based - simply activate the features - all changes are inherited - no real updating of anything
        • Nintex is integrated into SharePoint Central Administration
        • Nintex has its own category of links, all of which are simple and easy to maneuver around
        • K2 requires you to leave SharePoint to configure anything admin related.  You can always put a link to the K2 admin UI in Central Admin, but you still have to leave SharePoint to get to it
        • The K2 admin UI is a bit slow and its not very intuitive.
        • K2 utilizes the App Model, this means extra work to deploy the app across web application boundaries (multiple app catalogs), and you have to "add" the app to each web you want to use it on
        • You must also ensure that you can connect to the K2 server for the app to function properly (mean properly setting up the SSL bindings on the K2 server).
        • K2 app updates mean you have to redeploy the app to each web (no easy automation available for this unless you are an old school SharePoint person)
    • Headsup Designer(s) (Videos - K2 vs Nintex)
      • Winner - Tie
        • Nintex has a very simple web based Designer for both workflows and forms.  It is integrated into the browser, no separate applications, all via a rich web client.
        • K2 has many ways to design "processes" aka workflows.  You can do it via the browser, or you can do it via Designer tools like K2 Studio, Visual Studio or a web based designer.
        • K2 is a bit more complex to work with and understand the various UIs versus the simple-ness of Nintex
    • Headsup Site and List Workflow (Videos - K2 vs Nintex)
      • Winner - Tie
      • Why
        • TODO
    • Headsup Actions (Videos - K2 vs Nintex)
      • Winner Nintex
      • Why
        • TODO
    • Headsup Forms (Videos - K2 vs Nintex)
      • Winner Nintex
      • Why?
        • TODO
    • Headsup Extensability (Videos - K2 vs Nintex)
      • Winner - Nintex
      • Why
        • TODO
    • Headsup O365 versions (Videos - K2 vs Nintex)
      • Winner - Nintex
      • Why?
        • Nintex just works.  Period.  Install the O365 Workflow and Forms apps, your up and running with a 30 day trial.  Easy.  After the trial, call your Nintex Partner (ACS of course) and we can get you activated same day.  Easy.
        • K2 takes a very complicated process of working with them to setup a backend tenant tied to your O365 tenant.  You must also be given the AppIt app to install into your app catalog in order to use it (it is not in the SharePoint store).
        • K2 also requires that you continue to use it or the OAuth token will expire and the system won't be able to talk back to your O365 instance.  You'll get a ton of emails notifying you of this until you click the link to refresh it.

    Overall, I prefer Nintex over K2.  I'll get flak for that statement (but most of my friends have left K2 for various reasons I'm not at liberty to share at this point so maybe not).  Some will say, but have you seen the extensibliliy and architecture of K2 behind the scenes?  I'll simply say yes, but customers don't care about that.  They want something that is easy to install, easy to get started with and productive out of the box.  Nintex does that perfectly.


  • SP2013 vs SP2016 RTM - Diff at assembly level

    Here is the latest diff on the SP2016 vs SP2013 code base.  From here you can explore what were some of the more deeper changes in the code.  Biggest changes:

    • All legacy Office Web Apps dlls are now removed
    • Previously I mentioned that silverlight dlls looked to be removed, they are in fact still around
    • Similarly, all the Ceres Search Flow resource dlls are still around
    • Same as last post - All Education dlls are finally removed
    • Still have dependencies on some 3rd party installed dlls:
      • Reporting Services 10.0+
      • Windows Azure Storage
      • Microsoft.Azure.GraphClient.FirstClient - still have no idea where to get this one
      • NewtonSoft.Json 6.0 - used in Search
      • System.Web.Http - used in Search
      • Microsoft.Data (5.3 and 5.6) - seems some dlls have old 5.3 references that have not been updated
    • ChicagoIntegration is gone from RTM - *LOL* Big Smile
    • All new Ceres Push API code now exists:
      • Microsoft.Ceres.ContentEngine.ContentPush
      • Microsoft.Ceres.ContentEngine.Operators.ContentPush
      • Microsoft.Ceres.ContentEngine.Processing.ContentPush
      • Microsoft.ContentPushFlow
      • Microsoft.ContentPushHybridFlow
    • New Ceres Flows (for more information on what flows are - see my other post):
      • Microsoft.ContentPushFlow
      • Microsoft.ContentPushHybridFlow
      • Microsoft.ConversationalLatencyFlow
      • Microsoft.CrawlerPropertyReportingSubFlow
      • Microsoft.CrawlerSecurityInsertHybridSubFlow
      • Microsoft.DataLossPreventionSubFlow
      • Microsoft.DeleteTenantFromIndexSystemFlow
      • Microsoft.DocumentPreviewMetadataFeederFlow
      • Microsoft.ExplorerFlow
      • Microsoft.GraphSearchProviderFlow
      • Microsoft.IndexingSubFlow
      • Microsoft.PeopleSuggestionDictionaryDeploymentFlow
      • Microsoft.SignalStoreInputFlow
      • Microsoft.UsageAnalyticsImportFlow
    • OfficeGraph API exists:
      • Microsoft.Ceres.External.ContentApi.GraphExtensions
      • Microsoft.Ceres.SearchCore.GraphModel
      • Microsoft.Ceres.SearchCore.GraphQueryModel
      • Microsoft.Ceres.SearchCore.GraphSeedingModel
      • Microsoft.Ceres.SearchCore.GraphServer.Managed
      • Microsoft.Ceres.SearchCore.GraphStatusModel
      • Microsoft.Ceres.SearchCore.Indexes.GraphServerIndex
    • Microsoft.SharePoint.Client.Directory
      • CSOM for the new UserProfile sync stuff
    • Interesting new dll - Microsoft.Office.BigData.DataLoader.*
      • Have no idea what this is, but it looks interesting...
    • New compliance assemblies:
      • Microsoft.Office.CompliancePolicy.Platform

    This supplements the following blog posts:


    • Introducing codename PowerStream!

      Well, I can't keep stuff under wraps too long.  Sooo, a small little announcement about something I built in the past few months.  A tool code-named called "PowerStream" that will be officially announced with the new ShareSquared site in a few weeks.  This tool allows for the migration from anything (literally) to SharePoint with very little effort.  So far, I have tested the tool with several ECM systems (Documentum, oracle, custom, blah) and everything works perfectly!  In addition this tool integrates with another tool which I can't announce at the moment, but if you do anything around file plans, this will integrate with tools like Gimmal very easily.

      A lot of code came from the design of my Oracle to SharePoint tool that was developed at General Atomics, but this version adds in some of the other code I had from ACS days and some new stuff including:

      • Dynamic property setting
      • Managed Metadata leveling
      • OCR of TIFF and any other image formats
      • TIFF page/file merge
      • TIFF to OCR'd PDF/A
      • Really true awesome redaction capabilities

      Want to move your old redundant no featured ECM to SharePoint (on-premises or O365, yeah its CSOM based!)?  Let me know, I'll do it really quickly!



    • NEW SharePoint 2016 CSOM Rest EndPoints

      Here are the new end points segments and all new class methods and properties in SharePoint 2016:

      New endpoints:

      • /Me
        • /User
        • /Current
      • /GroupSiteManager
        • Create
        • GetSiteStatus
        • Notebook

      Out of the 529 new methods and properties available via CSOM/REST, here are some of the major changes I see:

      • Ability to interface with the new directory features (Microsoft.Office.Server.Directory.SharePoint.Provider.Remote)
      • A SharedWithMeDocument properties on the UserProfiles endpoint
      • TenantAdministration features for DeletedSiteProperties and SiteCreationProperties as well as SiteProperties; Tenant level methods for  (Microsoft.Online.SharePoint.Dedicated.TenantAdministration)
      • IRM properties - Microsoft.SharePoint.SPEffectiveInformationRightsManagementSettings and Microsoft.SharePoint.SPInformationRightsManagementFileSettings
      • Ability to get App Info - Microsoft.SharePoint.SPTenantAppInformation

      New clientcallable classes:

      • Microsoft.Office.Server.Directory.SharePoint.Provider.RemoteDirectoryObjectData

      The tool will be updated soon with a 2013/2016 mode so you can browse the new 2016 endpoints.


    • Getting K2 System Key without using the installers

      Yeah, you know if you have ever done a K2 install, you know what I'm talking about.  Well, the days of waiting to get the system key to request the license is over.  You can run the following script to get your system keys for BlackPearl, BlackPoint and SmartForms:

      $scriptPath = "C:\temp\K2 for SharePoint 4.6.11 (4.13350.1734.1)\Installation"
      $scriptPath = "C:\Temp\K2 blackpearl 4.6.11 (4.12060.1731.1)\Installation"

      cd $scriptPath


      [System.Environment]::CurrentDirectory = $scriptPath;
      $installpath = "M:\Program Files (x86)\K2 blackpearl";

      $license = new-object SourceCode.Install.Licensing.Licensing($installPath + "\host server\bin");
      "BlackPearl " + $license.MachineKey;

      $license = new-object SourceCode.Install.Licensing.Licensing($installPath);
      "SmartForms " + $license.MachineKey;


    • Internet Information Service not installed

      Got bit by this on my personal servers in the past week.  A very helpful post pointed me to the issue:

      Except...mine was a tad bit different.  The IISADMIN service was completed removed from the WFE!  This was due to a SharePoint Server windows update not completing and failing.  In order to get it back, I simply re-ran the pre-req installer and once the service came back, I was able to load the Central Admin and continue with windows updates.


    • Welcome to ShareSquared Shannon Bray!

      Yep...Shannon Bray has decided to join ShareSquared!

      Amazingly, it had nothing *directly* of my doing, although a few people would disagree.  It just happened that David K. hit up Shannon like he always does and happened to get a bit more "response" back because of my move a few months ago.  This latest move certainly peaked Shannon's interest as he knows me really well and working for someone has never been something he thought I would do again.  After a couple quick convo's, Shannon had some serious stuff to think about.  Certainly his Planet Technology co-workers are going to miss him, as I deduced from the Facebook and SMS messages Smile

      I have known Shannon longer than I have known David (10+ years).  It all started back in the truely good old MCT days of everyone getting started with SharePoint via my famous (infamous?) 50064 SharePoint 2007 Developer course.  It was a tough course and those that could handle teaching it over a week were certainly complete and total rockstars.  Shannon was one of these people.  As he taught the course and grew over the years, he distinguished himself in many many ways. Husband, Father, Leader, Consultant, Cool Dude, Best Friend...etc etc.

      I'm excited that Shannon has decided to join myself and the ShareSquared team.  It means that he'll be around for my next round of cloud startup's in the next couple of years (yeah, those are still in the works) and I couldn't imagine it any other way!  

      Welcome Shannon, this is going to be a blast my friend!


    • Diff of SharePoint 2013 and 2016 codebase

      Hi all,

      I have done this the past two versions and every time I learn exactly what changed in the product.  Gives me a ton of stuff to explore and blog about later!  In this version, and as in the past two, there were some surprises that I will share here.  Keep in mind, the build that was released still doesn't have a ton of stuff "wired" up in terms of backend code.  Pretty ridiculous to see people touting "SharePoint 2016 training" based on a build that isn't even a Release Candidate (RC).  It's total bull.

      Some pre-reqs that the current code-base requires (and is not installed as part on the installer process):

      • Reporting Services Add-In - SQL R2 2008 - 10.0
      • Reporting Services Add-In - SQL R2 2008 - 11.0
      • SQL Server ADOMD.NET (Analysis Services) - 10.0 
      • Windows Azure Storage
      • Microsoft.Azure.GraphClient.FirstClient - ??? - no idea where or what this is...has to do with UserProfiles and sync but is not included and can't be downloaded from what research I have done

      Couple that show up that are installed\configured, yet still interesting:

      • NewtonSoft.Json 6.0 - used in Search
      • System.Web.Http - used in Search
      • Microsoft.Data (5.3 and 5.6) - seems some dlls have old 5.3 references that have not been updated

      Interesting things I noticed:

      • ChicagoIntegration.dll - check it out...and the fact it has as its version...LOL - used for ContentPush
      • Assemblies moved from GAC_MSIL to GAC_64 - yeah, much more performant for the target processor.  Many Search Dlls fell into this world.  I'll leave it to you to find the rest and see where performance was improved.
      • All things SilverLight and windows phone are gone!
      • SharePoint Education is now much as Rob thought it didn't ship before...LOL
      • Ceres Flows are not longer seperate Dlls...still need to find where these went!
      • New Ceres OfficeGraph and ContentPush Dlls are included now
      • Portable libraries are now included in the install
      • New format handlers for search and Office Excel files
      • New FileStorage code for Azure Storage interation
      • New O365 Resource discovery code
      • New Directory code with ServerStubs for CSOM

        There were a few Dlls added to the codebase.  These include (some are not verified and should be removed, but I only have so much time in the day):

        • AbsBlobStore
        • ChicagoIngestion
        • Microsoft.Ceres.AnalysisEngine.Managed
        • Microsoft.Ceres.Common.Tools.Sandbox
        • Microsoft.Ceres.ContentEngine.ContentPush
        • Microsoft.Ceres.ContentEngine.Operators.ContentPush
        • Microsoft.Ceres.ContentEngine.Operators.External
        • Microsoft.Ceres.ContentEngine.Operators.Mars
        • Microsoft.Ceres.ContentEngine.Operators.Security
        • Microsoft.Ceres.ContentEngine.Processing.ContentPush
        • Microsoft.Ceres.ContentEngine.Processing.External
        • Microsoft.Ceres.ContentEngine.Processing.Security
        • Microsoft.Ceres.DataLossPrevention
        • Microsoft.Ceres.DocParsing.External.Client
        • Microsoft.Ceres.DocParsing.External.Core
        • Microsoft.Ceres.DocParsing.FormatHandlers.ExcelGeneric
        • Microsoft.Ceres.DocParsing.FormatHandlers.ExcelLegacy
        • Microsoft.Ceres.DocParsing.FormatHandlers.ExcelOdbc
        • Microsoft.Ceres.DocParsing.FormatHandlers.PointPublishing
        • Microsoft.Ceres.External.ContentApi.GraphExtensions
        • Microsoft.Ceres.Flighting
        • Microsoft.Ceres.NlpBase.Phonetic
        • Microsoft.Ceres.Platform.Parallax
        • Microsoft.Ceres.SearchCore.FastServer.DumpLib.Managed
        • Microsoft.Ceres.SearchCore.FastServer.Managed
        • Microsoft.Ceres.SearchCore.GraphModel
        • Microsoft.Ceres.SearchCore.GraphQueryModel
        • Microsoft.Ceres.SearchCore.GraphSeedingModel
        • Microsoft.Ceres.SearchCore.GraphServer.Managed
        • Microsoft.Ceres.SearchCore.GraphStatusModel
        • Microsoft.Ceres.SearchCore.Indexes.GraphServerIndex
        • Microsoft.Ceres.SearchCore.IndexStorage
        • Microsoft.Ceres.SearchCore.KeyValueModel
        • Microsoft.Ceres.SearchCore.Tango
        • Microsoft.Ceres.SearchCore.TenantMapping
        • Microsoft.Ceres.SearchVssWriter
        • Microsoft.Data.Services.Client
        • Microsoft.Data.Services.Design
        • Microsoft.Data.Services
        • Microsoft.FileServices.Beta
        • Microsoft.FileServices.ServerStub.Beta
        • Microsoft.FileServices.ServerStub.V1
        • Microsoft.FileServices.ServerStub.V2
        • Microsoft.FileServices.V1
        • Microsoft.FileServices.V2
        • Microsoft.HtmlTrans.Interface
        • Microsoft.NaturalLanguage.Core
        • Microsoft.NaturalLanguage.KeywordExtraction
        • Microsoft.NaturalLanguage.KeywordExtraction.resources
        • Microsoft.O365.ResourceCatalog.PulsePackage
        • Microsoft.O365.ResourceCatalog.WexPackage
        • Microsoft.O365.ResourceDiscovery
        • Microsoft.OData.Core
        • Microsoft.OData.Edm
        • Microsoft.Office.Access.Server.Application
        • Microsoft.Office.Access.Server.Calculation
        • Microsoft.Office.Access.Server.Calculation.Interface
        • Microsoft.Office.Access.Server.Calculation.Interop
        • Microsoft.Office.Access.Server
        • Microsoft.Office.Access.Server.resources
        • Microsoft.Office.Access.Server.Security
        • Microsoft.Office.Access.Server.UI
        • Microsoft.Office.Access.Services.Application
        • Microsoft.Office.Access.Services.DataProxy
        • Microsoft.Office.Access.Services.DataServer
        • Microsoft.Office.Access.Services
        • Microsoft.Office.Access.Services.Moss
        • Microsoft.Office.Access.Services.Native
        • Microsoft.Office.Access.Services.resources
        • Microsoft.Office.Access.Services.Sql
        • Microsoft.Office.Access.Services.Storage
        • Microsoft.Office.Access.Services.UI
        • Microsoft.Office.BusinessApplications.Tools.AutoGen
        • Microsoft.Office.BusinessApplications.Tools
        • Microsoft.Office.BusinessApplications.Tools.Intl
        • Microsoft.Office.Client.Policy.Portable
        • Microsoft.Office.CompliancePolicy.Platform
        • Microsoft.Office.DocumentManagement.Intl
        • Microsoft.Office.DocumentManagement.ServerStub
        • Microsoft.Office.Excel.Server.CalculationServer.Proxy
        • Microsoft.Office.Excel.Server
        • Microsoft.Office.Excel.Server.MossHost
        • Microsoft.Office.Excel.WebUI
        • Microsoft.Office.Graphics.ShapeBuilder
        • Microsoft.Office.InfoPath.CLRLoader
        • Microsoft.Office.InfoPath
        • Microsoft.Office.InfoPath.Server.Administration.CommandLine
        • Microsoft.Office.InfoPath.Server
        • Microsoft.Office.InfoPath.Server.Host
        • Microsoft.Office.InfoPath.Server.Intl
        • Microsoft.Office.InfoPath.Server.Intl.Resources
        • Microsoft.Office.InfoPath.Server.Pages
        • Microsoft.Office.InfoPath.Server.RepairUtilities.Intl
        • Microsoft.Office.InfoPath.Server.RepairUtilities.Intl.Resources
        • Microsoft.Office.MhtExport
        • Microsoft.Office.Ofc
        • Microsoft.Office.Policy.Barcode.Generator
        • Microsoft.Office.Policy.intl
        • Microsoft.Office.Policy.ServerStub
        • Microsoft.Office.Project.Server.Database.Extension
        • Microsoft.Office.Project.Server.Optimizer
        • Microsoft.Office.SecureStoreService
        • Microsoft.Office.SecureStoreService.Intl
        • Microsoft.Office.Server.Chart
        • Microsoft.Office.Server.Chart.Intl
        • Microsoft.Office.Server.Chart.Intl.Resources
        • Microsoft.Office.Server.Conversion.Framework
        • Microsoft.Office.Server.Conversion.Storage
        • Microsoft.Office.Server.Conversion.ViewerInterface
        • Microsoft.Office.Server.Conversions
        • Microsoft.Office.Server.Diagnostics
        • Microsoft.Office.Server.Directory.SharePoint
        • Microsoft.Office.Server.Directory.SharePoint.Remote
        • Microsoft.Office.Server.Directory.SharePoint.Remote.ServerStub
        • Microsoft.Office.Server.Directory.SharePointInterface
        • Microsoft.Office.Server.Directory.SharePointInterface.ServerStub
        • Microsoft.Office.Server.FilterControls
        • Microsoft.Office.Server.ImportProfileProperties
        • Microsoft.Office.Server.Intl
        • Microsoft.Office.Server.PowerPoint
        • Microsoft.Office.Server.PowerPoint.Intl
        • Microsoft.Office.Server.PowerPoint.Intl.Resources
        • Microsoft.Office.Server.Sandbox
        • Microsoft.Office.Server.Search.Administration.MSSITLB
        • Microsoft.Office.Server.Search.ClickPredict
        • Microsoft.Office.Server.Search.ETW
        • Microsoft.Office.Server.Search.Intl
        • Microsoft.Office.Server.Search.Native
        • Microsoft.Office.Server.Search.Portability
        • Microsoft.Office.Server.Search.PowerShell
        • Microsoft.Office.Server.Search.RemoteSharepoint
        • Microsoft.Office.Server.UI
        • Microsoft.Office.Server.UserProfiles.Synchronization
        • Microsoft.Office.Server.WebAnalytics
        • Microsoft.Office.Server.WebAnalytics.Intl
        • Microsoft.Office.Server.WebAnalytics.Intl.Resources
        • Microsoft.Office.Server.WebAnalytics.UI
        • Microsoft.Office.ServiceInfrastructure.Definitions
        • Microsoft.Office.SharePoint.ClientExtensions.Intl
        • Microsoft.Office.SharePoint.Tools
        • Microsoft.Office.SlideLibrary
        • Microsoft.Office.TranslationServices.intl
        • Microsoft.Office.TranslationServices.intl.resources
        • Microsoft.Office.Visio.Server
        • Microsoft.Office.Visio.Server.GraphicsServer
        • Microsoft.Office.Visio.Server.Intl
        • Microsoft.Office.Visio.Server.Intl.Resources
        • Microsoft.Office.Web.Environment.OfficeServer
        • Microsoft.Office.Web.Sandbox
        • Microsoft.Office.Word.Server.intl
        • Microsoft.Office.Word.Server.intl.resources
        • Microsoft.Office.Workflow.Actions.intl
        • Microsoft.Office.Workflow.Actions.intl.resources
        • Microsoft.Office.Workflow.Feature
        • Microsoft.Office.Workflow.Routing
        • Microsoft.Office.Workflow.Routing.intl
        • Microsoft.Online.FileServices
        • Microsoft.Online.FileServices.ServerStub
        • Microsoft.PerformancePoint.Scorecards.DataSourceProviders.Standard
        • Microsoft.PerformancePoint.Scorecards.Server
        • Microsoft.Search.Platform.Parallax
        • Microsoft.Search.Server.comadmin
        • Microsoft.SharePoint.Client.Directory
        • Microsoft.SharePoint.Client.DocumentManagement.Portable
        • Microsoft.Sharepoint.Client.Publishing.Portable
        • Microsoft.SharePoint.Client.Runtime.Windows
        • Microsoft.SharePoint.Client.Runtime.WindowsPhone
        • Microsoft.SharePoint.Client.Runtime.WindowsStore
        • Microsoft.SharePoint.Client.Search.Applications.Portable
        • Microsoft.SharePoint.Client.Search.Portable
        • Microsoft.SharePoint.Client.ServerRuntime.OData
        • Microsoft.SharePoint.Client.UserProfiles.Portable
        • Microsoft.SharePoint.Client.WorkflowServices.Portable
        • Microsoft.Sharepoint.Excel.Proxies.Intl
        • microsoft.sharepoint.excel.proxies.intl.resources
        • Microsoft.Sharepoint.Sandbox
        • Microsoft.SharePoint.Search.Extended.Query
        • Microsoft.SharePoint.Search.Native
        • Microsoft.SharePoint.WorkflowServices
        • Microsoft.Spatial
        • Microsoft.Web.Constraint
        • Microsoft.Web.Design.Server
        • Newtonsoft.Json
        • System.Spatial
        Check out the Excel\PowerPivot workbook attached to this post for more details!
      • Latest Office 365 MVPs

        In keeping with previous posts, here is a list of all Office 365 MVPs as of 6/10/2015 (update coming July 1st)...At the bottom is a powershell script that you can run to follow all the SO365 MVPs in one go!

        Some quick stats...

        • 108 (non-anonymous) Office 365 MVPs

        Country breakdown:

        • 15 United States
        • 12 Not Shared
        • 7 Japan
        • 7 Sweden
        • 6 Australia
        • 6 Canada
        • 5 Brazil
        • 5 France
        • 4 Germany
        • 4 United Kingdom
        • 4 Netherlands
        • 3 Croatia
        • 2 China
        • 2 New Zealand
        • 2 Italy
        • 2 Switzerland
        • 2 Malaysia
        • 1 Mexico
        • 1 United Arab Emirates
        • 1 Vietnam
        • 1 Norway
        • 1 Peru
        • 1 Philippines
        • 1 Poland
        • 1 Portugal
        • 1 Russia
        • 1 Spain
        • 1 Bulgaria
        • 1 Austria
        • 1 Belgium
        • 1 Bosnia-Herzegovina
        • 1 Denmark
        • 1 Korea
        • 1 Latvia
        • 1 Hungary
        • 1 India
        • 1 Indonesia

        New MVPs (within last year):

        • Chris Goosen
        • David Petree
        • Elio Struyf
        • Erwin van Hunen
        • Haylee Fox
        • Johan Dahlbom
        • Knut Relbe-Moe
        • Matthew Green
        • Michael Blumenthal
        • Naohiko Maeda (?? ??)
        • Naomi Moneypenny
        • Nathan OBryan
        • Paolo Pialorsi (Paolo Pialorsi)
        • Ravikumar Sathyamurthy
        • Robert *** (Robert ***)
        • Samantha
        • Sébastien Levert
        • Susan Hanley
        • Tung Pham
        • Vasil Michev
        • Victor Meirans (Viktors Meirans)
        • Vitaly Vedenev
        • Wellington Agápto
        • Yoan Topenot
        • Yvette Watson

        Longest running\most awarded SharePoint MVPs:

        • Cindy Meister 19
        • Arnaud 12
        • Goran Husman 12
        • HeeJin Lee (Hee Jin Lee) 12
        • Nitin Sadashiv Paranjape 11
        • Tomislav Bronzin (Tomislav Bronzin) 11
        • Maarten van Stam 10
        • Scot Hillier 10

        The list (data comes from your MVP profile, you don't see it, go update it):

        Agnes MolnarBlogmolnaragnes
        Alan RichardsBlogarichards_Saruk
        Alex PearceBlog
        Alvaro dos Santos RezendeBlog
        Amin TavakoliBlogamintvk
        Arnaud Blogalcabeza
        Ayman Mohammed El-HattabBlogaymanelhattab
        Ben CurryBlog
        Benjamin NiaulinBlogbniaulin
        Benoit HAMETBlogbenoit_hamet
        Brendon FordBlogstewartisland
        Brett HillBlogbretthill
        Brian NøhrBlogbsnohr
        Byeongguk KuBlog
        Chris GoosenBlog
        Christian BuckleyBlogbuckleyplanet
        Cindy MeisterBlog
        Dan HolmeBlogdanholme
        Danny BurlageBlogdannyburlage
        Darrell C Webster (Darrell Webster)Blog
        David PetreeBlogdmixx
        Dean HowarthBlog
        Diogo Dias HeringerBlog
        Dragan PanjkovBlogpanjkov
        Elio StruyfBlogeliostruyf
        Emre AydinBlog
        Erwin van HunenBlog
        Eunjoo Lee (Eunjoo Lee)Blog
        Fernando AndreaziBlogfandreazi
        Genki WatanabeBloggenkiw
        Geoff EvelynBlog
        Gilles PommierBlog
        Goran HusmanBlog
        Haylee FoxBlog
        HeeJin Lee (Hee Jin Lee)Blog
        Igor PavlekovicBlogigorpnet
        J. Peter BruzzeseBlog
        Jasper Oosterveld (Jasper Oosterveld)Blogjasoosterveld
        Jeremy DahlBlog
        Jesper StåhleBlogJesperStahle
        Jethro SeghersBlogjseghers
        Jian Chen (??)Blogloveunicom
        Johan DahlbomBlogdaltondhcp
        Jorge Castañeda CanoBlogxorxe
        Juan Carlos Gonzalez Martin (Juan Carlos González)Blogjcgm1978
        Kamil Baczyk (Kamil Baczyk)BlogKamilBaczyk
        Kanwal KhippleBlogkkhipple
        Kazuhiko ?? Nakamura ??Blog
        Kelsey EppsBlogkelseyepps
        Kerstin RachfahlBloghimmlischeit
        Knut Relbe-MoeBlogsharePTkarm
        Laurent Miltgen-DelinchampBlog
        Liang Tang (??)Blog
        Loryan StrantBlogthecloudmouth
        Maarten van StamBlogaafvstam
        Magnus BjorkBlog
        Malin DandenellBlog
        Mario Cortes FloresBlog
        Markus WidlBlogmarkuswidl
        Martina GromBlogmagrom
        Matthew GreenBlogmattdgreen
        Mauricio CassemiroBlog
        Michael Kirst-NeshvaBlogankbs
        Michael BlumenthalBlog
        Michael WashingtonBlogADefWebserver
        Myles JefferyBlogmjthinkscape
        Naohiko Maeda (?? ??)Blognaohikomaeda
        Naoki OsadaBlog
        Naomi MoneypennyBlognmoneypenny
        Nathan OBryanBlogMCSMLab
        Nitin Sadashiv ParanjapeBlog
        Nuno Árias Silva (Nuno Árias Silva)BlogNunoAriasSilva
        Paolo Pialorsi (Paolo Pialorsi)Blog
        Patrick LamberBlogpatricklamber
        Patrick GuimonetBlogpatricg
        Paul SchaefleinBlogpaulschaeflein
        Paul WoodsBlogpaulwoods
        Poo Ching LoongBlog
        Rahmat ZikriBlogzikr1
        Raphael KoellnerBlogra_koellner
        Ravikumar SathyamurthyBlogShakthiRavi
        Rene Dominik ModeryBlogmodery
        Rie Okuda (?? ??)Blog
        Robert *** (Robert ***)Blog
        Robert D. CraneBlog
        Samantha Blog
        Sara Barbosa (Sara Barbosa)BlogSarabarbosa
        Scot HillierBlog
        Sean McNeillBlogs_mcneill
        Sébastien LevertBlogsebastienlevert
        Seiji Noro (?? ??)Blog
        Steve NoelBlogCloudItca
        Susan HanleyBlog
        Tomislav Bronzin (Tomislav Bronzin)Blogtbronzin
        Tommy ClarkeBlogitommyclarke
        Tung PhamBlog
        Ty AndersonBlog
        Vasil MichevBlog
        Victor Meirans (Viktors Meirans)Blog
        Vincent ChoyBlog
        Vitaly VedenevBlogvedenev
        Wellington AgáptoBlog
        WenXing LiaoBlog
        Yoan TopenotBlogYoanTopenot
        Yoni KirshBlog
        Yoshihide SakamotoBlog
        Yvette WatsonBlogyfwatson
        Zeljka KnezovicBlogzeljkak
      • Latest SharePoint MVPs (Twitter Follow Script)

        In keeping with previous posts, here is a list of all SharePoint MVPs as of 6/10/2015 (update coming July 1st)...At the bottom is a powershell script that you can run to follow all the SP MVPs in one go!

        Some quick stats...

        • 219 (non-anonymous) SharePoint Server MVPs

        Country breakdown:

        • 40    United States
        • 28    Not Shared
        • 22    Canada
        • 10    France
        • 8    Australia
        • 8    United Kingdom
        • 6    Switzerland
        • 6    Belgium
        • 6    India
        • 6    Japan
        • 5    Italy
        • 5    Netherlands
        • 5    Germany
        • 5    China
        • 4    Brazil
        • 4    Korea
        • 4    Spain
        • 3    Sri Lanka
        • 3    Denmark
        • 3    New Zealand
        • 2    Norway
        • 2    Pakistan
        • 2    Finland
        • 2    Costa Rica
        • 2    Sweden
        • 2    Czech Republic
        • 2    South Africa
        • 2    Taiwan
        • 1    Tunisia
        • 1    Turkey
        • 1    United Arab Emirates
        • 1    Uruguay
        • 1    Vietnam
        • 1    Croatia
        • 1    Colombia
        • 1    Guatemala
        • 1    Hungary
        • 1    Bulgaria
        • 1    Chile
        • 1    Bosnia-Herzegovina
        • 1    Argentina
        • 1    Macedonia F.Y.R.O
        • 1    Malaysia
        • 1    Jordan
        • 1    Philippines
        • 1    Portugal
        • 1    Romania
        • 1    Russia
        • 1    Singapore
        • 1    Slovenia

        New MVPs (within last year):

        • Adnan    Amin
        • Albert-Jan    Schot (Albert-Jan Schot)
        • Amit    Vasu
        • Bijaya    Kumar Sahoo (Bijay Kumar)
        • Bin    Wang
        • David    Amenda
        • Dinusha    Kumarasiri
        • Erdem    Avni SELÇUK
        • Inderjeet    Singh Jaggi
        • Jan    Vanek
        • Jussi    Roine (Jussi Roine)
        • Lakshmanan    sethu (Lakshmanan Sethu)
        • Marco    Rizzi
        • Michael    Nokhamzon
        • Mike    Maadarani
        • Prasath    Chellappan
        • Rodrigo    Romano (Rodrigo Romano)

        Longest running\most awarded SharePoint MVPs:

        • Michael    Greth    17
        • Daniel    Wessels    12
        • Robert    L. Bogue    12
        • Spencer    J Harbar    12
        • John    Timney    12
        • Rob    Windsor    12
        • Fabrice    Romelard (Fabrice Romelard)    12
        • Fumio    Mizobata (?? ???)    12
        • Pierre    Erol GIRAUDY (Erol GIRAUDY)    12
        • Ai    Yamasaki (?? ? (?? ?))    11
        • Haarón    González (Haarón González)    11
        • Adams    Chao    11
        • Ted    Pattison    11
        • Andrew    Connell    11
        • Sahil    Malik    11
        • Eli    Z. Robillard    11
        • Ed    Musters    11
        • Shane    Young    10
        • Joris    Poelmans    10
        • Hilton    Giesenow    10

        The list (data comes from your MVP profile, you don't see it, go update it):

        "Michelle" Caldwell (Michelle Caldwell)Blog
        Adams ChaoBlog
        Adis JugoBlogadisjugo
        Adnan AminBlogadnan_amin
        Adrián Diaz CerveraBlogAdrianDiaz81
        Ai Yamasaki (?? ? (?? ?))Blogai_yamasaki
        Alan MarshallBlog
        Albert-Jan Schot (Albert-Jan Schot)Blog
        Alberto Diaz MartinBlogadiazcan
        Alexey SadomovBlogsadomovalex
        Amanda PerranBlog
        Amit VasuBlog
        Anders DissingBlogandersdissing
        Andre LageBlogaaclage
        Andres Felipe Rojas ParraBlogarojaspa
        Andrew ConnellBlogandrewconnell
        Andrey MarkeevBlogamarkeev
        Antonio Maio (Antonio Maio)Blog
        Ashutosh SinghBlogashutosh80
        Asif RehmaniBlogasifrehmani
        Atsuo Yamasaki (?? ??)BlogSharePointIssue
        Becky BertramBlogbeckybertram
        Ben RobbBlogbenrobb
        Benoît JesterBlogSPAsipe
        Bijaya Kumar Sahoo (Bijay Kumar)Blogfewlines4biju
        Bin WangBlog
        Bjoern H Rapp (Bjoern H Rapp)Blogbjoern_rapp
        Brandon AtkinsonBlog
        Carlos CitranguloBlogcarlocitrangulo
        Cathy DewBlogcatpaint1
        Cheng Cheng (??)Blog
        Chris GivensBloggivenscj
        Chris O'BrienBlogChrisO_Brien
        Chris McNultyBlogcmcnulty2000
        Christian GlessnerBlog
        Christopher ClementBlogClemChristopher
        Chuantao DuanBlog
        Claudio BrottoBlog
        Colin PhillipsBlogitgroove_colin
        Corey RothBlogcoreyroth
        Dan UsherBlog
        Daniel McPherson (Daniel McPherson)Blogdanmc
        Daniel WesselsBlogmosslive
        Darko MilevskiBlog
        David MannBlog
        David Sánchez AguilarBlogdavidsancheza
        David AmendaBlog
        Debbie IrelandBlogdebbieireland
        Destin N JoyBlog
        Devendra VelegandlaBlog
        Dinusha KumarasiriBlog
        Dmitri PlotnikovBlogdmiplo
        Doug WareBlog
        Doug Hemminger (Doug Hemminger)Blog
        Dux Raymond SyBlogmeetdux
        Ed MustersBlog
        Edin KapicBlogekapic
        Elaine van BergenBloglaneyvb
        Eli Z. RobillardBlog
        Erdem Avni SELÇUKBlogeravse
        Eric Alan Shupps (Eric Shupps)Blogeshupps
        Eric RizBlogrizinsights
        Fabian ImazBlogFabianImaz
        Fabian MoritzBlogFabianMoritz
        Fabian G WilliamsBlogfabianwilliams
        Fabio FranziniBlogfranzinifabio
        Fabrice Romelard (Fabrice Romelard)Blogfromelard
        Fumio Mizobata (?? ???)Blog
        Gaetan BouveretBloggbouveret
        Gavin BarronBloggavinbarron
        Giuseppe MarchiBlogPeppeDotNet
        Gokan OzcifciBlogGokanOzcifci
        Guillaume Meyer (Guillaume Meyer)Blogguillaumemeyer
        Gustavo Adolfo Velez DuqueBlog
        Haarón González (Haarón González)Bloghaarongonzalez
        Hans Brender (Hans Brender)BlogHansBrender
        Heber LopesBlogheberolopes
        Hemendra Agrawal (Hemendra Agrawal)Blog
        Hilary StoupaBlog
        Hilton GiesenowBlogthemossshow
        Hiroaki Oikawa (?? ??)BlogHiroakiOikawa
        Hirofumi OtaBloghrfmjp
        Igor Macori (Igor Macori)Blogimacori
        Inderjeet Singh JaggiBlog
        Isha KapoorBlog
        Ivan SandersBlogiasanders
        Ivan Padabed (???? ???????)Blogsharepointby
        Jake Dan Attis (J. Dan Attis)Blogjdattis
        James MilneBlogJamesMilne
        Jamie McAllisterBlog
        Jan VanekBlog
        Jason WarrenBlogjaspnwarren
        Jason HimmelsteinBlogsharepointlhorn
        Jason Kaczor (Jason Kaczor)Blogjjkaczor
        Jean PaulBlogjeanpaulmvp
        Jennifer Ann MasonBlogjennifermason
        JeongWoo ChoiBlog
        Jianyu Yang (???)Blog
        John TimneyBlog
        John D. RossBlogjohnrossjr
        John P White (John P White)Blogdiverdown1964
        John Liu (John Liu)Blogjohnnliu
        Joris PoelmansBlog
        Joseph Tu (???)Blog
        Juan Pablo Pussacq LabordeBlogjpussacq
        Juan Manuel (Manolo) Herrera (Juan Manuel Herrera Ocheita)Blogjmhogua
        Juan Andrés Valenzuela (Juan Andrés Valenzuela)Blogjandresval
        Julien ChableBlog
        Jussi Roine (Jussi Roine)Blogjussiroine
        Jussi MoriBlogJussiMori
        Justin Liu (???)BlogFoxdaveJustin
        Kamil JurikBlogKamilJurik
        Keith TuomiBlogkeithtuomi
        Kevin Trelohan (Kevin TRELOHAN)Blogktrelohan
        Kris WagnerBlogSharePointKris
        Lakshmanan sethu (Lakshmanan Sethu)Blog
        Laura Derbes Rogers (Laura Rogers)Blogwonderlaura
        Liam ClearyBloghelloitsliam
        Lionel LimozinBloglimozinlionel
        Mahmoud CHALLOUFBlog
        Marat Bakirov (????? ???????)Blog
        Marc D AndersonBlog
        Marco RizziBlogmarcorizzi
        Margriet BruggemanBlogmargrietvuur
        Marianne van WanrooijBlogmariannerd
        Marius ConstantinescuBlogc_marius
        Mark RhodesBlog
        Mark StokesBlogMarkStokes
        Martin HarwarBlogpoint8020
        Masaki NishiokaBlog
        Matthew McDermottBlogMatthewMcD
        Matthias EinigBlogmattein
        Melick Rajee BaranasooriyaBlogMelickRajee
        Michael NokhamzonBlogmickey75019
        Michael GrethBlogmysharepoint
        Michael NoelBlogmichaeltnoel
        Michal PisarekBlog
        Miguel Tabera (Miguel Tabera)Blogmigueltabera
        Mikael Svenson (Mikael Svenson)Blog
        Mike MaadaraniBlog
        Mike SmithBlogTechTrainNotes
        Mirjam van OlstBlogmirjamvanolst
        Mohammed A. SalehBlogmohkanaan
        Muhammad Imran KhawarBlogmsdev_Pakstatus571218277298348033
        Nabil BabaciBlognabilbabaci
        Nguyen Hoang Nhut (Nguyen Hoang Nhut)Blognhutcmos
        Nick KellettBlog
        Nicki BorellBlogNickiBorell
        Nicolas GeorgeaultBlogngeorgeault
        Noorez KhamisBlognkhamis
        Patrick YongBlog
        Paul OlenickBlog
        Paul Papanek StorkBlogpstork
        Penelope CoventryBlogpjcov
        Peter HolparBlog
        Peter CarsonBlogcarsonpeter
        Pierre Vivier-MerleBlog
        Pierre Erol GIRAUDY (Erol GIRAUDY)BlogEROL_MVP
        Prasath ChellappanBlog
        Radi AtanassovBlog
        Randy DrisgillBlog
        Reza AlirezaeiBlog
        Ricardo Jose MunozBlogrmunozcr
        Riwut LibinukoBlogcakriwut
        Rob FosterBlog
        Rob WindsorBlogrobwindsor
        Robert VoncinaBlogR0b3r70SP
        Robert L. BogueBlog
        Rodrigo PintoBlogScoutmanPt
        Rodrigo Romano (Rodrigo Romano)Blog
        Roger HaueterBlogtechtask
        Romeo Donca (Romeo Donca)Blogromeodonca
        Ruven GotzBlog
        Sahil MalikBlog
        Samuel ZuercherBlogsharepointszu
        Sangha BaekBlogSanghaBaek
        Scott JamisonBlog
        Sean WallbridgeBlogitgroove
        Seokhyi HanBlog
        Serge LucaBlog
        Serge TremblayBlogSergepoint
        Seung-Jin KimBlogjincrom
        Sezai KomurBlogsezai
        Shai PetelBlogshaibs
        Shane YoungBlog
        Shuguang TuBlog
        Sohel RanaBlog
        Sonja MadsenBlog
        Spencer J HarbarBlogharbars
        Stanislav VyschepanBloggandjustas
        Stéphane EyskensBlogstephaneeyskens
        Steve SmithBlog
        Steve CurranBlogspsteve
        Susitha Prabath FonsekaBlog
        Symon GarfieldBlogsymon_garfield
        Ted PattisonBlog
        Thomas VochtenBlogThomasVochten
        Thorsten HansBlogThorstenHans
        Thuan NguyenBlognnthuan
        Tobias ZimmergrenBlogzimmergren
        Todd KlindtBlog
        Todd S BaginskiBlogtoddbaginski
        Toni FrankolaBlogtonifrankola
        Trevor SewardBlogNaupliusTrevor
        Usama Wahab Khan (Usama Wahab Khan)Blogusamawahabkhan
        Valy GreavuBlogvalygreavu
        Veronique PalmerBlogveroniquepalmer
        Vielka RojasBlogvkrojas
        Vijai Anand Ramalingam (Vijai Anand Ramalingam)Blog
        Vincent BiretBlogbaywet
        Vlad CatrinescuBlog
        Waldek MastykarzBlogwaldekm
        Wei DuBlog
        Wes PrestonBlogidubbs
        Wesley HackettBlogweshackett
        Wictor WilenBlogwictor
        Wonbae KimBlog
        Yaroslav PentsarskyyBlogspentsarsky
        Yasir AttiqBlog
        Posted Wednesday, June 10, 2015 10:55 PM by cjg | 1 Comments
        Filed under:

      • Subnet masks are important...SharePoint Is Up...err Down

        We had this awesome situation the past 5 days.  Another team wanted to use ElasticSearch to index SharePoint.  They would attempt to connect to SharePoint, but were not able to.  Of course, the SharePoint Servers were in fact up as demonstrated by my ability to connect to them from my laptop and from other servers in the farm.  I therefore wrote them off as crazy and put down as a firewall/F5/Linux issue.  But they kept nagging at me and eventually escalated to the higher powers that be and I was forced to deal with it.  Here's how it played out:

        Quick Facts:

        • ElasticSearch on its own /28 subnet
        • SharePoint on its own /28 subnet (more on this later)
        • F5 VIPs for load balancing on both sides (both SP WFEs and ElasticSearch queries)
        • Both subnets part of a larger /24 subnet allocation pool

        The process (after 5 days of back and forth):

        • Can you ping our server IPs?  Yes
        • Can you hit our SP URLs?  No
        • What happens when you ping via DNS?  We see the F5 VIP IP
        • Change your hosts file to point to a WFE directly, can you hit our server?  Yes
        • Oh, we need a bounceback iRule for the SP servers to talk to each other, let's add that now
        • Maybe we need a reverse proxy on the VIP?  Let's add that?
        • Remove your hosts file, can you hit our servers?  No
        • Fire up wireshark on all the servers, do logging on the F5
        • Traffic flows from the ElasticSearch, through the F5 and does arrive at our SP WFE however the WFE kills the TCP connection and no IIS request is logged - WTF...
        • Chris - "OK guys, let's start at the bottom and work our way up the OSI layers..."
          • Ethernet adapters good? - Yup
          • Level 2 ok?  Yup
          • Level 3 - got IPs? Yup - Chris - "Hey, what is your guys subnet?".  Them - "".  Chris - "Ours is ""....***

        5 hours over 5 days wasted, frustrated, starting to think they were crazy F5 guys...all because the network guys didn't setup our subnet properly.  What was happening is the SharePoint servers had a huge subnet configured.  This caused the SP servers to think that the ElasticSearch servers were on the same subnet but weren't.  Therefore when it couldn't connect to them using layer 2, it would kill the TCP layer.  Awesome.


      • Building Your Own Push API for O365 (Ingesting Twitter)

        Yes, it can be done.  You have to play by the O365 system's rules, but you can do it.  Here's how it can be done...

        The high level steps:

        • Find a data source (Twitter, Facebook, Instagram, whatever)
        • Create\configure an O365 account with access to Azure AD instance for your tenant
        • Ingest the data, transform to format that O365 will accept (Word, PPT, Excel, PDF)
        • Upload the data into O365 (document library)
        • Update the metadata on the doc/item after upload, this includes:
          • Create necessary user
          • Tag the user
          • Create hashtags
          • Share with those users involved
        • Wait up to 15 minutes for your results to display

        So let's walk through these steps in a bit more detail shall we?

        First Step - get twitter data

        This is done by simply using the HttpWebRequest class of .NET and getting the html of a user's feed (provided they have not locked it down, in my case...Christophe ain't indexable when logged in...LOL).  This is a GET request to{username

        Parse the HTML - I have provided a Util class to help you with this.  ParseValue is super me king of html parsing if you will...

        You can then use the twitter html response to parse out the tweet feed of the user.  This would include for each tweet:

        • Mentions
        • Text
        • Hashtags

        Great, now you have the tweet data into some class structure (such as a hashtable).  Next is to grab a screen shot of all the tweets.  This can be done using the IE Browser control of .NET: 

        Bitmap docImage = new Bitmap(width, height);
        webBrowser1.DrawToBitmap(docImage, new Rectangle(webBrowser1.Location.X, webBrowser1.Location.Y, width, height));
        docImage.Save("c:\\temp\\" + + ".png");

        You can now take that tweet image and import it into a word document using the System.IO.Packaging namespace.

        From there, you now need to upload the word document with the tweet image to your O365 instance.  This can be done using the CSOM libraries.

        Now that the word doc with the twitter image is loaded, you now need to update the metadata using the CSOM api.  Now this is a bit more advanced in the fact that hashtags become MMS terms and mentions become sharing links:

        Sharing an item can be done via some hidden HTML post apis...this ensure that the shared item shows on the other user's feed.

        However, if the users doesn't need to add them to your Azure AD tenant...this can be done by calling an obscure undocumented api...check out the "CreateUser" method.

        If you wait a while...UPS will pick up this new Azure AD user and you will be able to tag the user as the creator and modifier of the new word document...errr..umm...tweet.  Which means you might have to run this more than once for each tweet (ah...the life of a lazy Saas app).

        In 15 minutes...the document will be indexed properly, the users will see it on their feed and the users' that it is shared with will see it too...Office Graph at its finest...

        The code is now posted to codeplex...@williambaer rejoice...however I did not publish the Word doc generation project (OfficeXml) for patent reasons, so you'll have to figure out that part, its not hard, but also not easy:

        Easy breezy...MVP for another year...boom




      • Stop Killing Yourself Drop Kerberos - Go Claims!

        Why...why put yourself through the agony?  To be fair and relatively speaking, kerberos is easy to setup and manage, but its old and stupid.  The whole design is to keep you from tagging the auth controllers each time you login and be able to "delegate" your credentials to some other system so it can do something "on your behalf". 

        Hmm...that sounds based auth with auth tokens anyone?  Not a single Saas App uses why are you still using it?  Its just stupid.  If you have a product that relies on Kerberos, then you are living in 1999.  Fast forward 16 years later....


        Drop those old apps that you don't need anymore for ones that support claims auth and have so much more functionality than the old ones you have.  It's time.  Really.  You can let go now.


        Well...time to drop that vendor's software.  Yeah...tell the Microsoft SQL Server team (isn't that the only reason you still use Kerberos?) to get with the times.  Its ridiculous that they don't support claims based auth and delegated auth based on Claims based tokens. 

        Time for software vendors and engineering teams to step up.  It's freakin 2015...I want my sharks with lasers damn it.




      • Wait What?!? Chris is Joining ShareSquared as CTO?

        Yeah, personally, its a bit hard to believe, but I'm going to work for a company again.  It has been a very long time since I have actually reported to someone other than my customers!  To be more specific, since my Avanade and startup days in Seattle back in 2004!  So why do it now?  Quite a few reasons...

        #1 - David Kruglov, Jim Duncan, John Honeycutt/Jeff Gunn and the crew

        I have know David for over 8 years now.  I have watched him through his ups and downs, MVP after MVP and intimately know the details of every person that walked through his company.  Through it all, he has maintained a level of energy and integrity that I have not seen in any other owner of a company that I have met in our little consulting space.  David works hard and plays hard, but not as crazy as some of the other CEO's I know out there (especially you ones from down under)!  David has worked his ass off to get to a point where he has learned how to play this game.  It has definitely not been without some missteps that he undoubtedly learned from.  He has some pretty amazing things in the pipeline and he did a great job selling me on what he has going on.  Right now, everything is going to plan and I will be calling some of you to see how happy you are where you are Big Smile

        Jim Duncan is a just simply a rock star. It has truly been a pleasure watching him work for the past two weeks.  He's technical, he's a great manager and leader...and he just simply does an amazing job at managing the projects.  I'm looking forward to continue to work with him and hopefully automate many of the tasks that are...less than pleasurable!

        John Honeycutt and Jeff Gunn are on it. It is simply amazing to watch them close deals.  They have some insane close rate that even the guys and gals at IBM would be envious of!  They will be keeping Jim and I busy for a few years to come!

        So far, the guys are awesome.  They work hard, they want to do good and they ask questions.  Everything you'd want from a team. We will be bringing on two more people in the coming weeks and I'll let them announce their "move".

        #2 - Envisioning My Product Ideas

        It is very difficult to make time to build products that you know the world needs without other people helping you (albeit, new technologies help alleviate a lot of the time and effort that is used to take). There are several options to accomplish building your personal product idea such as:

        • Hire people (contractors, employees)
        • Get industry friends to help you build it combining our spare time in exchange for equity
        • Sell the idea to someone so they can build it

        Each of these have advantages and disadvantages:

        • Taxes, Health Insurance, Disability...(although you can outsources all this admin stuff these days)
        • Capital to invest 
        • Trust
        • Loss of full potential earnings

        ShareSquared offers a set of people that can provide some of the extra oompfh that I need to get some of these ideas out into the wild.  They also have a couple of products that have some potential with some real-world tender love and care put into them.

        #3 - Location, location, location

        Southern California (SoCal) is my home.  I love it and I hate being away from our lovely home in the "Ranch".  Lidiya and I have built quite the setup in San Diego.  The kids are awesome.  We have super smart, successful friends such that we all feed of each other to make and drive us to do bigger and better things.  Staying home or being able to hop on the train to LA, do a meeting or two and be back in my own bed the same day is priceless.  A laser focus on SoCal (the 8th largest economy in the world) is enough to keep me busy for quite some time.   So fret not if you live outside SoCal, but you should take notice now that we are coming after you if you are doing business in SoCal.  But no matter what the consulting and product battlefield brings, your always welcome in our house!

        #4 - Equity

        I know my value.  Let me throw some names out there...IBM, Avanade, Microsoft, eBay, Intel, PayPal, Subway, General Atomics.  Those are big names.  I rocked all of them.  And that was all in a few years.  I have since had my own company for the last 10+ years working with people all over the world.  I have done very well (at least, I have kept the wife happy so that must equate to some level of success)!  You will have to strive to find a person that has been in these types of big companies, had their own company, built products and achieved everything they have ever put their mind too.  They do exist (and you guys and gals know who you are), but you'll have a hard time getting them and keeping them without keeping us occupied with taking over the world or justifying why we make you 100s or 1000s of thousands of dollars and we don't get a significant cut.

        I have a rule that I won't work anywhere where I don't have skin in the game with a huge payout involved.  I talked to several other companies exploring the possibility of working for them, and the salary offers were quite large, but with no possibility of a big payout in exchange for building them something amazing. 

        A don't get anywhere significant in this world by working solely for a salary. 

        #5 - Customers, Money & Value

        I want to rule over SoCal with all my other SoCal CEO's and deliver solutions that just rock it.  I want to drive the best solutions that focus on the equation that drives everything I do personally........

        P = R - C (Profit = Revenue - Cost)

        I only enjoy talking to executives, I get them after being one for 10+ years.  I want to make them tons of cash (and myself in the process).  I want to save them money in hard times. You may not like it, but the world we live in is all about money (<<<insert wife side remark here>>>).  I'm incredibly excited about the productivity "signals" that are about to be released to the world via Office 365.  You will be able to see exactly who is working and who is not.  Office is all about productivity (saving money).  I'm going to be focused like a hawk on value based solutions around the "C" part of the equation.  I'm not going to do any projects that are simply a "Cost" line item, I'm happy to pass those on to my competitors to bloody their name instead.

         #6 - Software Partnerships

        ShareSquared has some incredibly strong software ISV relationships.  Some of these companies I have not been that close too, but have watched from afar as they have penetrated tons of accounts and made serious money for themselves and their partners.  A big part of our strategy will be to continue to focus on those partnerships.  Personally I am very excited to be able to implement some of the newer partner product offerings that ShareSqaured is selling.

        #7 - M&A (Mergers and Acquisitions) and Big Partnerships

        Ruling SoCal will take some serious wheeling and dealing.  You can't fill up the CRM database by solely making cold calls. To be able to scale and grow the company means making some big moves.  I'll be involved in a lot of the growth and partnership strategy for ShareSquared and how we will make it to our "magic" number.  I can't share exactly how that will be done, but I definitely have quite a few things in the pipeline that I hope will get me that much closer to making my personal goals related to ShareSquared's future.


        Starting a new company is not easy.  Growing a company is not easy.   Nothing you do in this world is easy.  I'm looking forward to the challenges that ShareSquared and David Kruglov is presenting me. 

        I'm going to go at it just like I have everything else, hard and strong.  Just like my win tonight in my soccer feels great to be number one!  See you on the SoCal battlefield...


      • Workflow Associations lost in migration

        Ran into this interesting problem today.  It is related to this long running workflow bug from this post.  As part of the eBay/PayPal split, we are creating a new domain and moving the users.  Of course, some users still exist, some do not.  No matter what, the workflow user will not exist in the target domain.  So the previous bug occurs.

        But we ran into another issue.  All the list\site workflow associations disappeared for those "User not found" workflows. Took a couple of hours, but finally figured it out.

        If you run the SPFarm.MigrateUserAccount method before updating the non-existing workflow owner to an existing will LOSE ALL ASSOCIATIONS for all the workflows across the farm that the previously migrated user owned!  Ouch...

        Lesson sure to update the workflow modifiedby first, then migrate your users!


      More Posts Next page »

      This Blog


      Powered by Community Server, by Telligent Systems