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: empK2 for SharePoint 4.6.11 (4.13350.1734.1)Installation"
$scriptPath = "C:TempK2 blackpearl 4.6.11 (4.12060.1731.1)Installation"

cd $scriptPath

[System.Reflection.Assembly]::LoadFile("$scriptpathSourceCode.Install.Logging.dll")
[System.Reflection.Assembly]::LoadFile("$scriptpathSourceCode.Install.Licensing.dll")
[System.Reflection.Assembly]::LoadFile("$scriptpathLicensingx64SourceCode.HostServerInterfaces.dll")

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

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

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

Enjoy!
Chris 

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: 

https://melcher.it/2014/02/sharepoint-2013-cu-august-2013-internet-information-services-installed

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.

Enjoy,
Chris 

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 3.0.3.0
  • 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 installedconfigured, yet still interesting:

  • NewtonSoft.Json 6.0 – used in Search
  • System.Web.Http 5.2.2.0 – 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 0.0.0.0 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 dead…as 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 ExcelPowerPivot workbook attached to this post for more details!
     
    Enjoy!
    Chris 

    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 [:)]. 

    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!

    Chris 

    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 Dick (Robert Dick)
    • Samantha
    • Sébastien Levert
    • Susan Hanley
    • Tung Pham
    • Vasil Michev
    • Victor Meirans (Viktors Meirans)
    • Vitaly Vedenev
    • Wellington Agápto
    • Yoan Topenot
    • Yvette Watson

    Longest runningmost 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):

    ADefWebserver

    Name Blog Twitter
    Agnes Molnar Blog molnaragnes
    Alan Richards Blog arichards_Saruk
    Alex Pearce Blog
    Alvaro dos Santos Rezende Blog
    Amin Tavakoli Blog amintvk
    Arnaud Blog alcabeza
    Ayman Mohammed El-Hattab Blog aymanelhattab
    Ben Curry Blog
    Benjamin Niaulin Blog bniaulin
    Benoit HAMET Blog benoit_hamet
    Brendon Ford Blog stewartisland
    Brett Hill Blog bretthill
    Brian Nøhr Blog bsnohr
    Byeongguk Ku Blog
    Chris Goosen Blog
    Christian Buckley Blog buckleyplanet
    Cindy Meister Blog
    Dan Holme Blog danholme
    Danny Burlage Blog dannyburlage
    Darrell C Webster (Darrell Webster) Blog
    David Petree Blog dmixx
    Dean Howarth Blog
    Diogo Dias Heringer Blog
    Dragan Panjkov Blog panjkov
    Elio Struyf Blog eliostruyf
    Emre Aydin Blog
    Erwin van Hunen Blog
    Eunjoo Lee (Eunjoo Lee) Blog
    Fernando Andreazi Blog fandreazi
    Genki Watanabe Blog genkiw
    Geoff Evelyn Blog
    Gilles Pommier Blog
    Goran Husman Blog < /td>
    Haylee Fox Blog
    HeeJin Lee (Hee Jin Lee) Blog
    Igor Pavlekovic Blog igorpnet
    J. Peter Bruzzese Blog
    Jasper Oosterveld (Jasper Oosterveld) Blog jasoosterveld
    Jeremy Dahl Blog
    Jesper Ståhle Blog JesperStahle
    Jethro Seghers Blog jseghers
    Jian Chen (??) Blog loveunicom
    Johan Dahlbom Blog daltondhcp
    Jorge Castañeda Cano Blog xorxe
    Juan Carlos Gonzalez Martin (Juan Carlos González) Blog jcgm1978
    Kamil Baczyk (Kamil Baczyk) Blog KamilBaczyk
    Kanwal Khipple Blog kkhipple
    Kazuhiko ?? Nakamura ?? Blog
    Kelsey Epps Blog kelseyepps
    Kerstin Rachfahl Blog himmlischeit
    Knut Relbe-Moe Blog sharePTkarm
    Laurent Miltgen-Delinchamp Blog
    Liang Tang (??) Blog
    Loryan Strant Blog thecloudmouth
    Maarten van Stam Blog aafvstam
    Magnus Bjork Blog
    Malin Dandenell Blog
    Mario Cortes Flores Blog
    Markus Widl Blog markuswidl
    Martina Grom Blog magrom
    Matthew Green Blog mattdgreen
    Mauricio Cassemiro Blog
    Michael Kirst-Neshva Blog ankbs
    Michael Blumenthal Blog
    Michael Washington Blog
    Myles Jeffery Blog mjthinkscape
    Naohiko Maeda (?? ??) Blog naohikomaeda
    Naoki Osada Blog
    Naomi Moneypenny Blog nmoneypenny
    Nathan OBryan Blog MCSMLab
    Nitin Sadashiv Paranjape Blog
    Nuno Árias Silva (Nuno Árias Silva) Blog NunoAriasSilva
    Paolo Pialorsi (Paolo Pialorsi) Blog
    Patrick Lamber Blog patricklamber
    Patrick Guimonet Blog patricg
    Paul Schaeflein Blog paulschaeflein
    Paul Woods Blog paulwoods
    Poo Ching Loong Blog
    Rahmat Zikri Blog zikr1
    Raphael Koellner Blog ra_koellner
    Ravikumar Sathyamurthy Blog ShakthiRavi
    Rene Dominik Modery Blog modery
    Rie Okuda (?? ??) Blog
    Robert Dick (Robert Dick) Blog
    Robert D. Crane Blog
    Samantha Blog
    Sara Barbosa (Sara Barbosa) Blog Sarabarbosa
    Scot Hillier Blog
    Sean McNeill Blog s_mcneill
    Sébastien Levert Blog sebastienlevert
    Seiji Noro (?? ??) Blog
    Steve Noel Blog CloudItca
    Susan Hanley Blog
    Tomislav Bronzin (Tomislav Bronzin) Blog tbronzin
    Tommy Clarke Blog itommyclarke
    Tung Pham Blog
    Ty Anderson Blog
    Vasil Michev Blog
    Victor Meirans (Viktors Meirans) Blog
    Vincent Choy Blog
    Vitaly Vedenev Blog vedenev
    Wellington Agápto Blog
    WenXing Liao Blog
    Yoan Topenot Blog YoanTopenot
    Yoni Kirsh Blog
    Yoshihide Sakamoto Blog
    Yvette Watson Blog yfwatson
    Zeljka Knezovic Blog zeljkak

    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 runningmost 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):

    Name Blog Twitter
    "Michelle" Caldwell (Michelle Caldwell) Blog
    Adams Chao Blog
    Adis Jugo Blog adisjugo
    Adnan Amin Blog adnan_amin
    Adrián Diaz Cervera Blog AdrianDiaz81
    Ai Yamasaki (?? ? (?? ?)) Blog ai_yamasaki
    Alan Marshall Blog
    Albert-Jan Schot (Albert-Jan Schot) Blog
    Alberto Diaz Martin Blog adiazcan
    Alexey Sadomov Blog sadomovalex
    Amanda Perran Blog
    Amit Vasu Blog
    Anders Dissing Blog andersdissing
    Andre Lage Blog aaclage
    Andres Felipe Rojas Parra Blog arojaspa
    Andrew Connell Blog andrewconnell
    Andrey Markeev Blog amarkeev
    Antonio Maio (Antonio Maio) Blog
    Ashutosh Singh Blog ashutosh80
    Asif Rehmani Blog asifrehmani
    Atsuo Yamasaki (?? ??) Blog SharePointIssue
    Becky Bertram Blog beckybertram
    Ben Robb Blog benrobb
    Benoît Jester Blog SPAsipe
    Bijaya Kumar Sahoo (Bijay Kumar) Blog fewlines4biju
    Bin Wang Blog
    Bjoern H Rapp (Bjoern H Rapp) Blog bjoern_rapp
    Brandon Atkinson Blog
    Carlos Citrangulo Blog carlocitrangulo
    Cathy Dew Blog catpaint1
    Cheng Cheng (??) Blog
    Chris Givens Blog givenscj
    Chris O'Brien Blog ChrisO_Brien
    Chris McNulty Blog cmcnulty2000
    Christian Glessner Blog
    Christopher Clement Blog ClemChristopher
    Chuantao Duan Blog
    Claudio Brotto Blog
    Colin Phillips Blog itgroove_colin
    Corey Roth Blog coreyroth
    Dan Usher Blog
    Daniel McPherson (Daniel McPherson) Blog danmc
    Daniel Wessels Blog mosslive
    Darko Milevski Blog
    David Mann Blog
    David Sánchez Aguilar Blog davidsancheza
    David Amenda Blog
    Debbie Ireland Blog debbieireland
    Destin N Joy Blog
    Devendra Velegandla Blog
    Dinusha Kumarasiri Blog
    Dmitri Plotnikov Blog dmiplo
    Doug Ware Blog
    Doug Hemminger (Doug Hemminger) Blog
    Dux Raymond Sy Blog meetdux
    Ed Musters Blog
    Edin Kapic Blog ekapic
    Elaine van Bergen Blog laneyvb
    Eli Z. Robillard Blog
    Erdem Avni SELÇUK Blog eravse
    Eric Alan Shupps (Eric Shupps) Blog eshupps
    Eric Riz Blog rizinsights
    Fabian Imaz Blog FabianImaz
    Fabian Moritz Blog FabianMoritz
    Fabian G Williams Blog fabianwilliams
    Fabio Franzini Blog franzinifabio
    Fabrice Romelard (Fabrice Romelard) Blog fromelard
    Fumio Mizobata (?? ???) Blog
    Gaetan Bouveret Blog gbouveret
    Gavin Barron Blog gavinbarron
    Giuseppe Marchi Blog PeppeDotNet
    Gokan Ozcifci Blog GokanOzcifci
    Guillaume Meyer (Guillaume Meyer) Blog guillaumemeyer
    Gustavo Adolfo Velez Duque Blog
    Haarón González (Haarón González) Blog haarongonzalez
    Hans Brender (Hans Brender) Blog HansBrender
    Heber Lopes Blog heberolopes
    Hemendra Agrawal (Hemendra Agrawal) Blog
    Hilary Stoupa Blog
    Hilton Giesenow Blog themossshow
    Hiroaki Oikawa (?? ??) Blog HiroakiOikawa
    Hirofumi Ota Blog hrfmjp
    Igor Macori (Igor Macori) Blog imacori
    Inderjeet Singh Jaggi Blog
    Isha Kapoor Blog
    Ivan Sanders Blog iasanders
    Ivan Padabed (???? ???????) Blog sharepointby
    Jake Dan Attis (J. Dan Attis) Blog jdattis
    James Milne Blog JamesMilne
    Jamie McAllister Blog
    Jan Vanek Blog
    Jason Warren Blog jaspnwarren
    Jason Himmelstein Blog sharepointlhorn
    Jason Kaczor (Jason Kaczor) Blog jjkaczor
    Jean Paul Blog jeanpaulmvp
    Jennifer Ann Mason Blog jennifermason
    JeongWoo Choi Blog
    Jianyu Yang (???) Blog
    John Timney Blog
    John D. Ross Blog johnrossjr
    John P White (John P White) Blog diverdown1964
    John Liu (John Liu) Blog johnnliu
    Joris Poelmans Blog
    Joseph Tu (???) Blog
    Juan Pablo Pussacq Laborde Blog jpussacq
    Juan Manuel (Manolo) Herrera (Juan Manuel Herrera Ocheita) Blog jmhogua
    Juan Andrés Valenzuela (Juan Andrés Valenzuela) Blog jandresval
    Julien Chable Blog
    Jussi Roine (Jussi Roine) Blog jussiroine
    Jussi Mori Blog JussiMori
    Justin Liu (???) Blog FoxdaveJustin
    Kamil Jurik Blog KamilJurik
    Keith Tuomi Blog keithtuomi
    Kevin Trelohan (Kevin TRELOHAN) Blog ktrelohan
    Kris Wagner Blog SharePointKris
    Lakshmanan sethu (Lakshmanan Sethu) Blog
    Laura Derbes Rogers (Laura Rogers) Blog wonderlaura
    Liam Cleary Blog helloitsliam
    Lionel Limozin Blog limozinlionel
    Mahmoud CHALLOUF Blog
    Marat Bakirov (????? ???????) Blog
    Marc D Anderson Blog
    Marco Rizzi Blog marcorizzi
    Margriet Bruggeman Blog margrietvuur
    Marianne van Wanrooij Blog mariannerd
    < a href="https://mvp.microsoft.com/en-us/mvp/Marius%20Constantinescu-5000240" target="_blank">Marius Constantinescu Blog c_marius
    Mark Rhodes Blog
    Mark Stokes Blog MarkStokes
    Martin Harwar Blog point8020
    Masaki Nishioka Blog
    Matthew McDermott Blog MatthewMcD
    Matthias Einig Blog mattein
    Melick Rajee Baranasooriya Blog MelickRajee
    Michael Nokhamzon Blog mickey75019
    Michael Greth Blog mysharepoint
    Michael Noel Blog michaeltnoel
    Michal Pisarek Blog
    Miguel Tabera (Miguel Tabera) Blog migueltabera
    Mikael Svenson (Mikael Svenson) Blog
    Mike Maadarani Blog
    Mike Smith Blog TechTrainNotes
    Mirjam van Olst Blog mirjamvanolst
    Mohammed A. Saleh Blog mohkanaan
    Muhammad Imran Khawar Blog msdev_Pakstatus571218277298348033
    Nabil Babaci Blog nabilbabaci
    Nguyen Hoang Nhut (Nguyen Hoang Nhut) Blog nhutcmos
    Nick Kellett Blog
    Nicki Borell Blog NickiBorell
    Nicolas Georgeault Blog ngeorgeault
    Noorez Khamis Blog nkhamis
    Patrick Yong Blog
    Paul Olenick Blog
    Paul Papanek Stork Blog pstork
    Penelope Coventry Blog pjcov
    Peter Holpar Blog
    Peter Carson Blog carsonpeter
    Pierre Vivier-Merle Blog
    Pierre Erol GIRAUDY (Erol GIRAUDY) Blog EROL_MVP
    Prasath Chellappan Blog
    Radi Atanassov Blog
    Randy Drisgill Blog
    Reza Alirezaei Blog
    Ricardo Jose Munoz Blog rmunozcr
    Riwut Libinuko Blog cakriwut
    Rob Foster Blog
    Rob Windsor Blog robwindsor
    Robert Voncina Blog R0b3r70SP
    Robert L. Bogue Blog
    Rodrigo Pinto Blog ScoutmanPt
    Rodrigo Romano (Rodrigo Romano) Blog
    Roger Haueter Blog techtask
    Romeo Donca (Romeo Donca) Blog romeodonca
    Ruven Gotz Blog
    Sahil Malik Blog
    Samuel Zuercher Blog sharepointszu
    Sangha Baek Blog SanghaBaek
    Scott Jamison Blog
    Sean Wallbridge Blog itgroove
    Seokhyi Han Blog
    Serge Luca Blog
    Serge Tremblay Blog Sergepoint
    Seung-Jin Kim Blog jincrom
    Sezai Komur Blog sezai
    Shai Petel Blog shaibs
    Shane Young Blog
    Shuguang Tu Blog
    Sohel Rana Blog
    Sonja Madsen Blog
    Spencer J Harbar Blog harbars
    Stanislav Vyschepan Blog gandjustas
    Stéphane Eyskens Blog stephaneeyskens
    Steve Smith Blog
    Steve Curran Blog spsteve
    Susitha Prabath Fonseka Blog
    Symon Garfield Blog symon_garfield
    Ted Pattison Blog
    Thomas Vochten Blog ThomasVochten
    Thorsten Hans Blog ThorstenHans
    Thuan Nguyen Blog nnthuan
    Tobias Zimmergren Blog zimmergren
    Todd Klindt Blog
    Todd S Baginski Blog toddbaginski
    Toni Frankola Blog tonifrankola
    Trevor Seward Blog NaupliusTrevor
    Usama Wahab Khan (Usama Wahab Khan) Blog usamawahabkhan
    Valy Greavu Blog valygreavu
    Veronique Palmer Blog veroniquepalmer
    Vielka Rojas Blog vkrojas
    Vijai Anand Ramalingam (Vijai Anand Ramalingam) Blog
    Vincent Biret Blog baywet
    Vlad Catrinescu Blog
    Waldek Mastykarz Blog waldekm
    Wei Du Blog
    Wes Preston Blog idubbs
    Wesley Hackett Blog weshackett
    Wictor Wilen Blog wictor
    Wonbae Kim Blog
    Yaroslav Pentsarskyy Blog spentsarsky
    Yasir Attiq Blog

    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 – "255.255.255.240".  Chris – "Ours is "255.255.252.0"….FUCK

    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.

    Enjoy!
    Chris

    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 familiar….claims based auth with auth tokens anyone?  Not a single Saas App uses kerberos…so 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….

    YOU SHOULD DROP ALL THINGS KERBEROS.

    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.

    BUT CHRIS I CAN'T CUZ…THE VENDOR HASN'T UPDATED THEIR SOFTWARE….

    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.

     

    Chris

     

    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)
    • Createconfigure 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 http://twitter.com/{username

    Parse the HTML – I have provided a Util class to help you with this.  ParseValue is super helpful…call 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\" + this.id + ".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 exist…you 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:

    https://pushapi.codeplex.com

    Easy breezy…MVP for another year…boom

    CJG 

     

     

    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 [:D]

    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 tip…you 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.

    Summary

    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 league…it feels great to be number one!  See you on the SoCal battlefield…