<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on Thomy Gölles</title><link>https://thomygoelles.com/posts/</link><description>Recent content in Posts on Thomy Gölles</description><generator>Hugo</generator><language>en</language><lastBuildDate>Mon, 02 Mar 2026 10:00:00 +0000</lastBuildDate><atom:link href="https://thomygoelles.com/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>My First Coding Agent Fleet with Enterprise Tooling</title><link>https://thomygoelles.com/first-coding-agent-fleet/</link><pubDate>Mon, 02 Mar 2026 10:00:00 +0000</pubDate><guid>https://thomygoelles.com/first-coding-agent-fleet/</guid><description>&lt;p&gt;Last week I was at the AI Tour in Munich. Andreas Krüger introduced me to Squad. A GitHub project from a group of Microsoft Engineers. (THX Brady Gaster)&lt;/p&gt;
&lt;p&gt;And what can I say, it&amp;rsquo;s been rattling around in my head ever since.&lt;/p&gt;
&lt;h2 id="the-idea"&gt;The Idea&lt;/h2&gt;
&lt;p&gt;In our internal app, users can submit feedback and ideas. Screenshot it, add details, send it. All gets processed internally and simultaneously synced to a GitHub issue list.&lt;/p&gt;</description></item><item><title>OpenClaw, Copilot, and the Difference Between Personal Tools and Enterprise Platforms</title><link>https://thomygoelles.com/openclaw-copilot-personal-vs-enterprise/</link><pubDate>Thu, 19 Feb 2026 09:00:00 +0000</pubDate><guid>https://thomygoelles.com/openclaw-copilot-personal-vs-enterprise/</guid><description>&lt;p&gt;Over the weekend I played around with OpenClaw. Built skills, created a Graz assistant (if you want to try it, search for &amp;ldquo;grazy&amp;rdquo; on ClawHub), just explored what&amp;rsquo;s possible. Right now I&amp;rsquo;m tinkering with a diary skill that checks what happened during the day across my OpenClaw chats and summarizes it. And the building itself just happens in a Telegram chat with OpenClaw, on the couch, Netflix running in the background. I started coding with TurboPascal over 25 years ago, what&amp;rsquo;s happening right now was science fiction in 1998.&lt;/p&gt;</description></item><item><title>Between Frontier Ambition and Reality: What 'Agent Ready' Really Means</title><link>https://thomygoelles.com/agent-ready-really-means/</link><pubDate>Tue, 17 Feb 2026 10:30:00 +0000</pubDate><guid>https://thomygoelles.com/agent-ready-really-means/</guid><description>&lt;p&gt;Microsoft defined six pillars that a company needs to deal with AI Agents a few weeks ago. Governance, Scaling, Adoption and so on.&lt;/p&gt;
&lt;p&gt;What I find exciting is that Microsoft itself says most companies are only at the beginning. Not because they&amp;rsquo;re lagging behind, but because &amp;ldquo;Agent Ready&amp;rdquo; means more than just starting an agent.&lt;/p&gt;
&lt;h2 id="the-responsibility-question"&gt;The Responsibility Question&lt;/h2&gt;
&lt;p&gt;What occupies me most is not (only) the technology, but who in the company actually bears the responsibility for it.&lt;/p&gt;</description></item><item><title>A panel of 5</title><link>https://thomygoelles.com/a-panel-of-5/</link><pubDate>Tue, 07 Oct 2025 12:02:49 +0000</pubDate><guid>https://thomygoelles.com/a-panel-of-5/</guid><description>&lt;h2 id="everyone-talks-about-ai-hallucinations-like-theyre-always-a-bug-sometimes-theyre-actually-the-feature"&gt;Everyone talks about AI hallucinations like they&amp;rsquo;re always a bug. Sometimes they&amp;rsquo;re actually the feature.&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve been using this prompt lately that creates a panel of five people to discuss my business decisions. Steve Jobs, Alex Hormozi, Seth Godin, Brené Brown, Simon Sinek.&lt;/p&gt;
&lt;p&gt;Steve Jobs is dead. So obviously nothing he &amp;ldquo;says&amp;rdquo; is real. It&amp;rsquo;s all made up by the AI.&lt;/p&gt;
&lt;p&gt;And that&amp;rsquo;s exactly why it works.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m not looking for facts when I use this. I&amp;rsquo;m looking for perspectives I wouldn&amp;rsquo;t come up with on my own. When &amp;ldquo;Seth&amp;rdquo; challenges if I&amp;rsquo;m building something actually remarkable or just following what everyone else does, or &amp;ldquo;Simon&amp;rdquo; pushes me to explain why my business exists beyond just making money - that&amp;rsquo;s not truth, it&amp;rsquo;s more like a mirror.&lt;/p&gt;</description></item><item><title>Exploring the AI Experiment Rabbit Hole</title><link>https://thomygoelles.com/ai-experiment-rabbit-hole/</link><pubDate>Thu, 25 Sep 2025 22:00:00 +0000</pubDate><guid>https://thomygoelles.com/ai-experiment-rabbit-hole/</guid><description>&lt;h2 id="tldr"&gt;TL;DR&lt;/h2&gt;
&lt;p&gt;I ran seven identical prompts (late Sep 2025) across ChatGPT (GPT-5), Microsoft 365 Copilot (Web), and Claude Sonnet 4 to see how they actually behave. ChatGPT and Copilot felt similar in structure, but ChatGPT was the most reliable on “what’s the latest now?” facts (e.g., Docker Desktop), while Copilot produced the most “CTO-ready” briefing—and was blocked exactly once by its Responsible AI layer on a trivial math question. Claude wrote in a friendlier, more guided style with a nice canvas, but it sometimes drifted on timelines/specs and once missed a table requirement. For workflow, exporting and navigation were clearly smoother in ChatGPT (and Claude), whereas Copilot’s UI (copy state, short title limit, odd rename error) slowed me down. In a bonus “write the post” challenge, both ChatGPT and Claude delivered usable drafts (Claude via an agentic setup), while Copilot fell short due to missing markdown project support.&lt;/p&gt;</description></item><item><title>When “Responsible AI” Becomes a Wall Instead of a Guide</title><link>https://thomygoelles.com/who-defines-responsible-ai/</link><pubDate>Sun, 24 Aug 2025 09:26:38 +0000</pubDate><guid>https://thomygoelles.com/who-defines-responsible-ai/</guid><description>&lt;h2 id="when-responsible-ai-becomes-a-wall-instead-of-a-guide"&gt;When “Responsible AI” Becomes a Wall Instead of a Guide&lt;/h2&gt;
&lt;p&gt;The other day, I ran into this delightful message:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“Your instructions may contain content that violates Microsoft’s responsible AI policy.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That’s it. No explanation. No hint of what part is problematic. Just a big red warning, suggesting that somewhere, somehow, I might be about to do something bad.&lt;/p&gt;
&lt;h2 id="the-cynicism-of-corporate-responsibility"&gt;The Cynicism of Corporate Responsibility&lt;/h2&gt;
&lt;p&gt;Now, I’m not against the idea of “responsible AI.” Quite the opposite. Of course, AI needs guardrails. But here’s where the cynicism kicks in: if a trillion-dollar, shareholder-value-driven company gets to define what “responsible” means—without transparency or clarity—then we’re left in a strange place.&lt;/p&gt;</description></item><item><title>Boost Developer Productivity with Copilot in Viva Connections</title><link>https://thomygoelles.com/boost-developer-productivity-with-copilot-in-viva-connections/</link><pubDate>Wed, 11 Dec 2024 16:45:13 +0000</pubDate><guid>https://thomygoelles.com/boost-developer-productivity-with-copilot-in-viva-connections/</guid><description>&lt;p&gt;&lt;i&gt;Copilot, Copilot a Copilot for everyone!&lt;/i&gt;&lt;/p&gt;
&lt;h2 id="tldr"&gt;TLDR&lt;/h2&gt;
&lt;p&gt;This blog post shows how to use Copilot to create Adaptive Cards for Viva Connections. We ask Microsoft 365 Copilot for some ideas for cards of our dashboard and then take that to Github Copilot to generate the code for the Adaptive Cards. The results are discussed are the topic of the blog post. Results are really impressive but fear not, there is always room for improvement.&lt;/p&gt;</description></item><item><title>Copilot help - Update PnP Powershell</title><link>https://thomygoelles.com/copilot-help-update-pnp-powershell/</link><pubDate>Tue, 10 Dec 2024 16:45:13 +0000</pubDate><guid>https://thomygoelles.com/copilot-help-update-pnp-powershell/</guid><description>&lt;p&gt;&lt;i&gt;How to update PnP PowerShell with Copilot&amp;rsquo;s help&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Yes, I&amp;rsquo;m lazy and I&amp;rsquo;m not using PowerShell every single day.
Today I needed to update my PnP PowerShell module, and I thought I&amp;rsquo;d use Copilot to help me with that. Here&amp;rsquo;s how it went:&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s start with the initial prompt:
&lt;img src="https://thomygoelles.com/img/2024/12/copilot-pnp-update01.png#center" alt="Initial prompt"&gt;&lt;/p&gt;
&lt;p&gt;Ok. That worked fine, but of course there is something else. I don&amp;rsquo;t know how, but I always end up having multiple versions of the PnP PowerShell module installed. So I asked Copilot to help me with that as well:&lt;/p&gt;</description></item><item><title>How to fix Pi-hole blocking Azure OpenAI calls</title><link>https://thomygoelles.com/how-to-fix-pi-hole-blocking-azure-openai-calls/</link><pubDate>Thu, 22 Feb 2024 07:59:41 +0000</pubDate><guid>https://thomygoelles.com/how-to-fix-pi-hole-blocking-azure-openai-calls/</guid><description>&lt;p&gt;&lt;i&gt;A simple solution for a frustrating bug hunt&lt;/i&gt;&lt;/p&gt;
&lt;h2 id="tldr"&gt;TLDR;&lt;/h2&gt;
&lt;p&gt;If you’re using Pi-hole for ad-blocking and find that it’s preventing your access to Azure OpenAI Service, the solution is to whitelist Azure OpenAI domains in Pi-hole’s settings. This issue arises because Pi-hole, which blocks ad-serving domains at the DNS level, can also block legitimate services like Azure OpenAI. The fix involves accessing Pi-hole’s admin interface and adding openai.azure.com to the whitelist, ensuring uninterrupted access to Azure OpenAI for your services, which relies on Azure OpenAI for features like Semantic Kernel for natural language processing. Remember to share this workaround with anyone facing similar issues!&lt;/p&gt;</description></item><item><title>Exploits and possible LLM attacks plus M365 Copilot</title><link>https://thomygoelles.com/exploits-and-possible-llm-attacks-plus-m365-copilot/</link><pubDate>Sun, 04 Feb 2024 12:26:38 +0000</pubDate><guid>https://thomygoelles.com/exploits-and-possible-llm-attacks-plus-m365-copilot/</guid><description>&lt;p&gt;There is a German idiom called &amp;ldquo;in between the years&amp;rdquo;, meaning the timeframe from Christmas to New Year&amp;rsquo;s eve. It is a time of reflection and of course family. This year it was also the time of the &lt;a href="https://events.ccc.de/congress/2023/infos/index.html" target="_blank" rel="noopener"&gt;37th Chaos Communication Congress (37C3) in Hamburg&lt;/a&gt;. The 37C3 was a hybrid event, meaning it was a physical event in Hamburg and a virtual event on the internet.&lt;/p&gt;
&lt;h2 id="real-world-exploits-and-mitigations-in-llm-applications"&gt;Real-world exploits and mitigations in LLM applications&lt;/h2&gt;
&lt;p&gt;One of the talks that I found very interesting was the talk about &lt;a href="https://www.youtube.com/watch?v=qyTSOSDEC5M" target="_blank" rel="noopener"&gt;Real-world exploits and mitigations in LLM applications (37c3)&lt;/a&gt;. The talk was about a new type of attacks that are based on LLMs by &lt;a href="https://www.linkedin.com/in/johannrehberger/" target="_blank" rel="noopener"&gt;Johann Rehberger&lt;/a&gt;. Johann is currently a Red Team Director at Electronic Arts and worked as a Principal Security Engineer Manager for years at Microsoft. Red Teams are tasked with simulating attacks on a company&amp;rsquo;s systems to test the effectiveness of its security measures. So it&amp;rsquo;s very interessting so see his thoughts on this topic.&lt;/p&gt;</description></item><item><title>TeamsFx: Visual Studio project name too long for manifest validation</title><link>https://thomygoelles.com/teamsfx-visual-studio-project-name-too-long-for-manifest-validation/</link><pubDate>Sat, 03 Feb 2024 15:26:38 +0000</pubDate><guid>https://thomygoelles.com/teamsfx-visual-studio-project-name-too-long-for-manifest-validation/</guid><description>&lt;p&gt;When you are working with the Teams Toolkit for Visual Studio and you are using a long project name, you might run into an issue when you want to package your application for deployment. The error message is helpful if you already have some experience with the Teams manifest, but it might be confusing for new developers. The error message we are discussing today is: (×) Error: /name/short must NOT have more than 30 characters&lt;/p&gt;</description></item><item><title>TeamsFx: How to use Microsoft Graph SDK v5 already</title><link>https://thomygoelles.com/teamsfx-graph-sdk-v5/</link><pubDate>Wed, 22 Mar 2023 12:58:35 +0000</pubDate><guid>https://thomygoelles.com/teamsfx-graph-sdk-v5/</guid><description>&lt;p&gt;Looking at the latest release from the Microsoft Graph SDK team an their version 5.0.0 for dotnet three weeks ago, I was wondering how to use it with TeamsFx. I was not able to find any documentation on this topic, so I decided to write this post to share my findings.&lt;/p&gt;
&lt;h2 id="what-is-the-microsoft-graph-sdk-v5-for-dotnet"&gt;What is the Microsoft Graph SDK v5 for dotnet?&lt;/h2&gt;
&lt;p&gt;Using the Microsoft Graph .NET SDK, you can take advantage of a fluent API and models that support retry handling, secure redirects, batching requests, large file management, and many more capabilities. This allows you to focus on what really matters in your Teams application instead of having to worry about the details of the HTTP requests and responses.&lt;/p&gt;</description></item><item><title>Microsoft Teams Framework (TeamsFx) - Infographic</title><link>https://thomygoelles.com/teamsfx-infographic/</link><pubDate>Thu, 03 Mar 2022 06:00:00 +0000</pubDate><guid>https://thomygoelles.com/teamsfx-infographic/</guid><description>&lt;p&gt;Spending some time talking with customers and fellow developers about TeamsFx made me realise, that there is some
confusion about how Microsoft named different parts of the framework. I created this one slide to explain the different flavours, names and ideas behind TeamsFx in my sessions. As sharing is caring, here we go!&lt;/p&gt;
&lt;p&gt;&lt;img src="https://thomygoelles.com/img/2022/04/TeamsFXNet01.png" alt="TeamsFx Infographic"&gt;&lt;/p&gt;</description></item><item><title>My approach to public speaking</title><link>https://thomygoelles.com/my-approach-to-public-speaking/</link><pubDate>Thu, 03 Mar 2022 06:00:00 +0000</pubDate><guid>https://thomygoelles.com/my-approach-to-public-speaking/</guid><description>&lt;p&gt;During the last weeks, I got some questions about public speaking, session preparation, and my approach.&lt;/p&gt;
&lt;p&gt;Today I&amp;rsquo;m again preparing a session, and I thought it might be a good time to write down what I&amp;rsquo;m doing and why quickly.&lt;/p&gt;
&lt;h2 id="im-cheating"&gt;I&amp;rsquo;m cheating&lt;/h2&gt;
&lt;p&gt;Yes, you read that correctly. I&amp;rsquo;m cheating. I&amp;rsquo;m watching countless hours of other people talking in public on YouTube. One of my favourite books is called &amp;ldquo;Steal like an artist&amp;rdquo;, and that&amp;rsquo;s what I&amp;rsquo;m doing. I&amp;rsquo;m trying to read/watch/retrieve as much information about speaking in public as possible.&lt;/p&gt;</description></item><item><title>TeamsFx - add custom debug profiles</title><link>https://thomygoelles.com/teamsfx-add-custom-debug-profiles/</link><pubDate>Tue, 19 Oct 2021 22:49:50 +0000</pubDate><guid>https://thomygoelles.com/teamsfx-add-custom-debug-profiles/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Today&amp;rsquo;s post is about the need(pain?) of installing your Teams application at the start of every TeamsFx debugging session. If you are new to TeamsFx in Visual Studio please read this &lt;a href="https://thomygoelles.com/getting-started-with-the-microsoft-teams-framework-teamsfx/"&gt;intro&lt;/a&gt; first as for the next parts we assume that you already familiarized yourself with the toolkit and its features.&lt;/p&gt;
&lt;p&gt;There are very good reasons why the Teams Toolkit always starts with the app install screen. At that screen, you can choose where to deploy your app. You can see the current version of your app and all other details of the manifest. But if you are in &amp;ldquo;the zone&amp;rdquo;, you might wish that there is a way to get to your latest changes just a bit quicker. What we will be talking about here won&amp;rsquo;t apply to every possible Teams app, but it works for tabs. To be precise, it works for everything you can create a Teams deep link for.&lt;/p&gt;</description></item><item><title>TeamsFx and .NET Hot Reload</title><link>https://thomygoelles.com/teamsfx-and-net-hot-reload/</link><pubDate>Sat, 02 Oct 2021 23:00:25 +0000</pubDate><guid>https://thomygoelles.com/teamsfx-and-net-hot-reload/</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;If you follow the news around .NET 6 and Visual Studio 2022 one of the most time-saving features for developers might be the .NET Hot Reload experience for editing code at runtime. This feature is part of the .NET 6 release and will be available across various project types such as WPF, Windows Forms, .NET MAUI, ASP.NET Core apps code-behind, Console applications, WinUI3 and many others. &lt;a href="https://devblogs.microsoft.com/dotnet/introducing-net-hot-reload/" target="_blank" rel="noopener"&gt;[1]&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devblogs.microsoft.com/dotnet/wp-content/uploads/sites/10/2021/05/dotnet-Hot-Reload-VS-2019-version-16_11.gif" alt=""&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Hot Reload example from &lt;a href="https://devblogs.microsoft.com/dotnet/introducing-net-hot-reload/" target="_blank" rel="noopener"&gt;Introducing the .NET Hot Reload experience for editing code at runtime - .NET Blog (microsoft.com)&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Getting started with the Microsoft Teams Framework (TeamsFx)</title><link>https://thomygoelles.com/getting-started-with-the-microsoft-teams-framework-teamsfx/</link><pubDate>Thu, 16 Sep 2021 21:17:41 +0000</pubDate><guid>https://thomygoelles.com/getting-started-with-the-microsoft-teams-framework-teamsfx/</guid><description>&lt;p&gt;A couple of months back, Microsoft started talking about a new way to create applications for Microsoft Teams. Those efforts got different names and with previous and betas and all their different names, it&amp;rsquo;s probably best to quote the current introduction from the actual &lt;a href="https://github.com/OfficeDev/TeamsFx" target="_blank" rel="noopener"&gt;GitHub repo&lt;/a&gt; of the project.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Microsoft Teams Framework is a library encapsulating common functionality and integration patterns (like simplified access to Microsoft Identity) for developers building apps for Microsoft Teams. The Teams Developer Platform offers a collection of solutions for Teams developers:&lt;/em&gt;&lt;/p&gt;</description></item><item><title>How to present at online meetings and events like an Ignite Superstar</title><link>https://thomygoelles.com/present-online-meetings-events-ignite-superstar/</link><pubDate>Mon, 23 Nov 2020 00:17:43 +0000</pubDate><guid>https://thomygoelles.com/present-online-meetings-events-ignite-superstar/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Most of you probably saw some images in a blog post or tuned in for some sessions at Ignite a couple of weeks ago. There was a clear difference in production value compared to what we all saw at Build in May of this year and the Microsoft superstars had made a big step in terms of presenting to a virtual audience.&lt;/p&gt;
&lt;p&gt;If you look at keynotes at those big events with a big audience in a conference room you are pretty sure that you will never be able to recreate this setup at home. With everything being virtual at the moment we can challenge that assumption. We start by a simple question: Can you turn your next Teams meeting in an Ignite-like keynote presentation?&lt;/p&gt;</description></item><item><title>List app usage in Microsoft Teams</title><link>https://thomygoelles.com/list-teams-app-usage/</link><pubDate>Sat, 06 Jun 2020 09:51:29 +0000</pubDate><guid>https://thomygoelles.com/list-teams-app-usage/</guid><description>&lt;p&gt;A couple of weeks ago I saw a thread in the interwebs where someone asked about information on Teams app usage. The question was what apps are used in which teams. I knew from experience with the &lt;a href="https://pnp.github.io/office365-cli/" target="_blank" rel="noopener"&gt;Office365 CLI&lt;/a&gt; and the Teams commands there, that this should be possible to accomplish with the existing commands. So here we go.&lt;/p&gt;
&lt;h2 id="listallteamsappsps1"&gt;ListAllTeamsApps.ps1&lt;/h2&gt;
&lt;p&gt;The first tiny script just iterates through all your teams and lists all apps in each team. Remember: the command will list only those teams you have access to. You can start this with your personal account, but to get all teams you will need an admin account to run those lines.&lt;/p&gt;</description></item><item><title>Create a Microsoft Teams Tab with Blazor</title><link>https://thomygoelles.com/microsoft-teams-tab-with-blazor/</link><pubDate>Thu, 04 Jun 2020 22:08:24 +0000</pubDate><guid>https://thomygoelles.com/microsoft-teams-tab-with-blazor/</guid><description>&lt;p&gt;This post highlights how you can use ASP.NET Blazor Server Side to host your Microsoft Teams tabs. The link to Teams can be achieved by leveraging the Teams JavaScript API, authentication is provided through ADAL.JS. As soon as we get our access token to the Microsoft Graph, we can call endpoints in native C# and visualize the data in Razor components. On both ends in Blazor, UI and data, you can reuse your C# skills or your existing business logic libraries to bring those to Microsoft Teams as a tab.&lt;/p&gt;</description></item><item><title>Microsoft365DSC remote name could not be resolved lyncdiscover</title><link>https://thomygoelles.com/microsoft365dsc-remote-name-could-not-be-resolved-lyncdiscover/</link><pubDate>Mon, 11 May 2020 15:29:37 +0000</pubDate><guid>https://thomygoelles.com/microsoft365dsc-remote-name-could-not-be-resolved-lyncdiscover/</guid><description>&lt;p&gt;A couple of days ago I stumbled upon a LinkedIn post/article by &lt;a href="https://twitter.com/NikCharlebois" target="_blank" rel="noopener"&gt;Nik Charlebois&lt;/a&gt; about the &lt;a href="http://microsoft365dsc.com/" target="_blank" rel="noopener"&gt;Microsoft365DSC&lt;/a&gt; project. The first sentence on Github already sold the idea to me &amp;ldquo;This module allows organizations to automate the deployment, configuration, and monitoring of Microsoft 365 Tenants via PowerShell Desired State Configuration.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;After starting to playing with it a little I came across a nasty error that took me some time to resolve. To prevent others from also losing valuable time I thought it might be a good idea to document the steps.&lt;/p&gt;</description></item><item><title>SPFx Development in WSL 2.0 - Linux files integration in Explorer</title><link>https://thomygoelles.com/spfx-development-in-wsl-2-0-linux-files-integration-in-explorer/</link><pubDate>Sun, 19 Apr 2020 22:50:16 +0000</pubDate><guid>https://thomygoelles.com/spfx-development-in-wsl-2-0-linux-files-integration-in-explorer/</guid><description>&lt;p&gt;Last week on Thursday my Windows PC got the latest Windows Preview Build. I was looking for a new version of the preview as the last one broke my webcams for Microsoft Teams. In times like these, not having a working video feed in Teams is not really a situation you want to end up with. There was a workaround to use OBS and a virtual camera to get it working but this was far from stable so I searched for a different way.&lt;/p&gt;</description></item><item><title>SharePoint look book: how to provision templates to non-English tenants</title><link>https://thomygoelles.com/sharepoint-look-book-templates-on-a-non-english-tenant/</link><pubDate>Mon, 18 Nov 2019 23:08:19 +0000</pubDate><guid>https://thomygoelles.com/sharepoint-look-book-templates-on-a-non-english-tenant/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Over the last weeks since Ignite 2019, the &lt;a href="https://lookbook.microsoft.com/" target="_blank" rel="noopener"&gt;SharePoint look book&lt;/a&gt; got more and more attention. Microsoft showcases beautiful designs on the look book page, and with the help of the SharePoint provisioning service, you can deploy those designs within a few clicks from an admin user.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://thomygoelles.com/img/2019/11/image.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;This is an excellent feature and allows you to deploy lovely demo site collections within minutes. That would be all great unless someone made a significant mistake during the creation of your tenant. In my case, that was me.&lt;/p&gt;</description></item><item><title>10 things you should do with your Office365 demo or dev tenant</title><link>https://thomygoelles.com/10-things-you-should-do-with-your-dev-demo-tenant/</link><pubDate>Tue, 30 Jul 2019 21:57:12 +0000</pubDate><guid>https://thomygoelles.com/10-things-you-should-do-with-your-dev-demo-tenant/</guid><description>&lt;p&gt;In the last couple of months, I needed to create a few demo or development tenants in Office365. As I don&amp;rsquo;t want to reinvent the wheel all the time, I created a list that steers me through the process and makes sure I don&amp;rsquo;t forget an important step. As you probably know, ticking things off a todo list can be a very satisfying activity. So the next time you need to create a development or demo tenant think of this list, copy it to your todo app and enjoy the good vibes while ticking off the boxes of your own 10 things.&lt;/p&gt;</description></item><item><title>Microsoft Forms and Flow for Teams channel governance</title><link>https://thomygoelles.com/microsoft-forms-and-flow-for-teams-channel-governance/</link><pubDate>Sat, 08 Dec 2018 22:27:46 +0000</pubDate><guid>https://thomygoelles.com/microsoft-forms-and-flow-for-teams-channel-governance/</guid><description>&lt;p&gt;Inspired by a tweet from fellow MVP Melissa Hubbard (&lt;a href="https://melihubb.com/" target="_blank" rel="noopener"&gt;https://melihubb.com/&lt;/a&gt;) this blog post introduces the idea of a Mircosoft Forms form combined with a flow to govern channel creation in Teams. Governance in Microsoft Teams is important for adoption and ease of use.&lt;a href="https://melihubb.com/2018/04/04/microsoft-teams-governance-how-to-create-a-channel-request-solution-using-flow/" target="_blank" rel="noopener"&gt;Melissa&amp;rsquo;s approach&lt;/a&gt; to the same problem is to use a SharePoint list for storing the information but I wanted to try it just with Microsoft Forms.&lt;/p&gt;
&lt;h4 id="why-should-we-use-governance"&gt;Why should we use governance?&lt;/h4&gt;
&lt;p&gt;The overall idea is to turn off self-service channel creation in Teams. Teams can get messy if there are too many channels. That&amp;rsquo;s why for some teams it&amp;rsquo;s better only to allow the owners of the team to create new channels. In your Teams settings, you have the option to define what members are allowed to do. In our scenario, we disallow the creation of new channels.&lt;/p&gt;</description></item><item><title>Friday Funday: Oculus Go &amp; SharePoint</title><link>https://thomygoelles.com/friday-funday-oculus-go-sharepoint/</link><pubDate>Fri, 16 Nov 2018 10:05:46 +0000</pubDate><guid>https://thomygoelles.com/friday-funday-oculus-go-sharepoint/</guid><description>&lt;p&gt;Since a few weeks, I&amp;rsquo;m playing with the new Oculus Go, a standalone VR headset. I wanted to test this kind of technology a few years ago, and this year at SharePoint Saturday Madrid we were invited to a virtual zombie hunt. This already was a fantastic experience joining a virtual reality with a group of fellow MVPs. The Oculus Go isn&amp;rsquo;t a powerhouse regarding performance. You can think of smartphone computing power with a Qualcomm Snapdragon 821 and a 5.5-inch, 2560x1440 WQHD LCD display. I never had a VR headset before. The main reason behind going with the Oculus Go is its independence. You don&amp;rsquo;t need a PC to power the experience, and you don&amp;rsquo;t need to use your phone in some kind of snap-in headset. &lt;img src="https://thomygoelles.com/img/2018/11/IMG_3972.jpg" alt=""&gt; Here you see Stephan trying out the Oculus Go with his own headphones. When you start playing with the headset, you get notifications from some apps to use headphones for a better immersive experience. Turns out that the audio makes a huge difference. But diving into VR on that level is somehow also a little scary or awkward. In some way, you lose the connection to your surroundings which can be disturbing. If you take your headset for a ride on the virtual roller coaster, you probably perceive motion sickness. It&amp;rsquo;s a wired feeling, your eyes tell the brain, &amp;ldquo;wow we are moving&amp;rdquo; but your inner ear is like &amp;ldquo;nope, we are standing still&amp;rdquo;. I saw this reaction on everyone testing the device for the first time. You get used to it, my advice is to sit down during the ride and grab the table in front of you. This already helps a lot. The platform is based on Android and an individual Oculus store. You can not run any Android app on the headset. I sideloaded some of the Office and SharePoint apps but wasn&amp;rsquo;t able to get them running or if brute forced the UI was entirely off. Would be cool to join a Teams meeting on the device. It&amp;rsquo;s built-in microphone and speakers should be good enough for an online meeting experience. For a real information worker use case the device lacks keyboard input. You can connect a keyboard via USB, but as you see nothing but the VR experience, I don&amp;rsquo;t think adoption will be high. This might change in the future by moving from virtual reality to augmented reality headset like the Hololense. Here some screens of the browser view of a modern SharePoint page, a Valo landing page or our own TeamBox. &lt;img src="https://thomygoelles.com/img/2018/11/46133150_10216693856808735_1556344492775178240_n.jpg" alt=""&gt; &lt;img src="https://thomygoelles.com/img/2018/11/46221929_10216693855728708_6922783872883097600_n.jpg" alt=""&gt; &lt;img src="https://thomygoelles.com/img/2018/11/46115543_10216693858488777_3564762962361057280_n.jpg" alt=""&gt; Overall it&amp;rsquo;s a device I would categorise as a gadget or nerdy. The VR is nice and the games more fun than expected, to be honest. But we are still a few steps away from using this kind of technology on a daily basis in a regular office. Maybe in the future but not now.&lt;/p&gt;</description></item><item><title>How to sideload an existing SPFx package in Microsoft Teams</title><link>https://thomygoelles.com/how-to-sideload-an-existing-spfx-package-in-microsoft-teams/</link><pubDate>Mon, 12 Nov 2018 00:45:45 +0000</pubDate><guid>https://thomygoelles.com/how-to-sideload-an-existing-spfx-package-in-microsoft-teams/</guid><description>&lt;h4 id="introduction"&gt;Introduction&lt;/h4&gt;
&lt;p&gt;In preparation for a talk next week I spent the whole weekend on creating demos and slides. A couple of days ago the SharePoint team released version 1.7 of the SharePoint Framework. This release has a ton of features, but one specific for Microsoft Teams adding the capability to surface SPFx web parts inside a Microsoft Teams tab. As my talk will be about Microsoft Teams why not change the demo plans 72 hours before the talk and try something new?&lt;/p&gt;</description></item><item><title>HappitChat: The Role of AI in the Modern Enterprise</title><link>https://thomygoelles.com/happitchat-the-role-of-ai-in-the-modern-enterprise/</link><pubDate>Wed, 12 Sep 2018 12:52:25 +0000</pubDate><guid>https://thomygoelles.com/happitchat-the-role-of-ai-in-the-modern-enterprise/</guid><description>&lt;p&gt;&lt;strong&gt;At this#HappitChat we will discuss the role of AI in the modern enterprise with our guests from Solvion. The recording will take about 30 minute and our experts will share with you:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;How can we incorporate AI into our daily work and collaboration?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;How can AI support employees’ work today?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Examples of AI in the modern workplace.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Host:&lt;/strong&gt; Jussi ‘Juicy’ Mori, Happit&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Guests:&lt;/strong&gt; Thomy Gölles, Solvion | Stephan Bisser, Solvion&lt;/p&gt;</description></item><item><title>Series: Your Intranet as a Business Model - Key Partners</title><link>https://thomygoelles.com/series-your-intranet-as-a-business-model-key-partners/</link><pubDate>Sun, 09 Sep 2018 23:03:30 +0000</pubDate><guid>https://thomygoelles.com/series-your-intranet-as-a-business-model-key-partners/</guid><description>&lt;p&gt;This series of blog posts introduces the idea of structuring your effort to deploy a new intranet based on the experience of startups and entrepreneurs in running their business. We will use the Business Canvas Model approach from Alex Osterwalder &lt;a href="http://alexosterwalder.com/" target="_blank" rel="noopener"&gt;(http://alexosterwalder.com/&lt;/a&gt;) and try to apply it to our domain. The Business Model Canvas is a strategic management and lean startup template for developing new or documenting existing business models. It is a visual chart with elements describing a firm&amp;rsquo;s or product&amp;rsquo;s value proposition, infrastructure, customers, and finances. It assists firms in aligning their activities by illustrating potential trade-offs. If you think of your intranet as a service you provide for all the employees, it&amp;rsquo;s the in-house equivalent to an external 3rd party service. So why not use the ideas and methods of those services during your deployment? To pass along the train of thought of using the Business Model Canvas have a look at this short introduction video:&lt;/p&gt;</description></item><item><title>Chrome SP Editor v4.1.4</title><link>https://thomygoelles.com/chrome-sp-editor-v4.1.4/</link><pubDate>Mon, 20 Aug 2018 10:51:12 +0000</pubDate><guid>https://thomygoelles.com/chrome-sp-editor-v4.1.4/</guid><description>&lt;p&gt;A couple of months ago I started playing with webhooks and SharePoint lists. After searching for the easiest way to configure a webhook I came across a feature in SP Editor by &lt;a href="https://twitter.com/tavikukko" target="_blank" rel="noopener"&gt;Tomi Tavela&lt;/a&gt;. By using the SP Editor you just need to open Chrome, navigate to your SharePoint site, press F12 and look for the Webhooks menu in the tool. Adding a webhook is done in two easy steps, selecting your list and provide the URL to your webhook, click save and that&amp;rsquo;s it. In my use case, I needed a small addition to that feature. A SharePoint webhook has an optional parameter called ClientState. This can be used to identify your webhook later on by just that variable. In the last week of July, I had the pleasure to be in Helsinki and meet with some local SharePoint guys including Tomi. If you already had the experience to feel that guys passion for his work and SharePoint development in general, it&amp;rsquo;s like a no-brainer to be motivated to give something back. It&amp;rsquo;s just a couple of lines of code added to the already awesome SP Editor and now starting with version 4.1.4 you are able to add a custom ClientState when adding a webhook to a SharePoint list. So, go check out the latest release of &lt;a href="https://chrome.google.com/webstore/detail/sp-editor/ecblfcmjnbbgaojblcpmjoamegpbodhd?hl=en" target="_blank" rel="noopener"&gt;SP Editor&lt;/a&gt; as it only will get better. &lt;/p&gt;</description></item><item><title>New Connector web part in modern sites</title><link>https://thomygoelles.com/new-connector-web-part-in-modern-sites/</link><pubDate>Wed, 21 Feb 2018 00:36:06 +0000</pubDate><guid>https://thomygoelles.com/new-connector-web-part-in-modern-sites/</guid><description>&lt;p&gt;A few hours ago Jeff Teper announced a blog post by Mark Kashman titled &amp;ldquo;Use SharePoint web parts to showcase data from inside and outside Office 365&amp;rdquo;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Exciting new webparts for the modern &lt;a href="https://twitter.com/hashtag/SharePoint?src=hash&amp;amp;ref_src=twsrc%5Etfw" target="_blank" rel="noopener"&gt;#SharePoint&lt;/a&gt; experience &lt;a href="https://t.co/T5dSWhHDc1" target="_blank" rel="noopener"&gt;https://t.co/T5dSWhHDc1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;— Jeff Teper (@jeffteper) &lt;a href="https://twitter.com/jeffteper/status/966049968694837249?ref_src=twsrc%5Etfw" target="_blank" rel="noopener"&gt;February 20, 2018&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This post [&lt;a href="https://techcommunity.microsoft.com/t5/SharePoint-Blog/Use-SharePoint-web-parts-to-showcase-data-from-inside-and/ba-p/161584#.WoyBrTYttL4.twitter" target="_blank" rel="noopener"&gt;Link&lt;/a&gt;] contains a list of new SharePoint framework web parts that started to roll out to Targeted Release tenants today. I got lucky, my tenant already has some of the new web parts. The new ones are:&lt;/p&gt;</description></item><item><title>Theodore - a bot for creating a team in Microsoft Teams</title><link>https://thomygoelles.com/theodore-a-bot-for-creating-a-team-in-microsoft-teams/</link><pubDate>Fri, 17 Nov 2017 23:07:20 +0000</pubDate><guid>https://thomygoelles.com/theodore-a-bot-for-creating-a-team-in-microsoft-teams/</guid><description>&lt;p&gt;My last posts were all about getting up to speed with the Microsoft Teams PowerShell cmdlets released two weeks ago. Running those cmdlets in an Azure Function creates some nice options in terms of creating a team in Teams (still, the wording is just awkward). I&amp;rsquo;m sure you read about all the governance discussion that services like Teams or Groups start in each environment. Only with proper tooling, you can manage the process of orchestrating your different collaboration features in Office365. To take this idea to the next level, what about using a bot in Teams to handling a users request of creating a new team. &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2017/11/Theodore-Architecture.png" alt=""&gt;This post describes how you can create a bot for your users that will ask for some data in order to create a new team in Microsoft Teams. The bot will call an http triggered Azure Function that is using PowerShell to handle the requests and has the new Teams cmdlets deployed to be able to create a new team in our tenant.    To code in the git hub repo is based on an example project (&lt;a href="https://github.com/Microsoft/BotBuilder-Samples" target="_blank" rel="noopener"&gt;https://github.com/Microsoft/BotBuilder-Samples&lt;/a&gt;)  of a dot.net bot that shows how the different dialogs in a bot can be wired together. The solution is quite simple and of course no way production ready: &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2017/11/TheodoreSolution.png" alt=""&gt; An example dialog of the bot looks like this: &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2017/11/TheodoreConversation.png" alt=""&gt; To create this kind of dialog you simply start the interaction with the user with code like this:&lt;code&gt;private async Task MessageReceivedAsync(IDialogContext context, IAwaitable&amp;lt;IMessageActivity&amp;gt; result) { PromptDialog.Choice( context, this.AfterChoiceSelected, new\[\] { ShowMyTeamsOption, CreateTeamOption }, &amp;quot;Hi I'm Theodor your Team automation but. How can I help?&amp;quot;, &amp;quot;I am sorry but I didn't understand that. I need you to select one of the options below&amp;quot;, attempts: 2); }&lt;/code&gt;This will create our two different buttons and will guide the user in the directions we want them to choose from. After we have all the data from the user, in our case just an alias and a display name, we can now call the Azure Function handling our request.```
Dictionary&amp;lt;string, string&amp;gt; dictionary = new Dictionary&amp;lt;string, string&amp;gt;
{
{ &amp;ldquo;displayName&amp;rdquo;, this.displayname },
{ &amp;ldquo;alias&amp;rdquo;, this.alias }
};&lt;/p&gt;</description></item><item><title>Microsoft Teams Automation - Teams PowerShell in Azure Functions</title><link>https://thomygoelles.com/microsoft-teams-automation-teams-powershell-in-azure-functions/</link><pubDate>Sat, 04 Nov 2017 00:04:57 +0000</pubDate><guid>https://thomygoelles.com/microsoft-teams-automation-teams-powershell-in-azure-functions/</guid><description>&lt;p&gt;After playing around with the Teams cmdlets in Azure Automation I tried to use them in Azure Functions. Should be pretty forward given the fact you can upload your own modules to your function in a matter of minutes. Well, it took me some hours. But let&amp;rsquo;s get started. To upload a custom PowerShell module have a look at &lt;a href="https://blogs.msdn.microsoft.com/powershell/2017/02/24/using-powershell-modules-in-azure-functions" target="_blank" rel="noopener"&gt;https://blogs.msdn.microsoft.com/powershell/2017/02/24/using-powershell-modules-in-azure-functions&lt;/a&gt;/ This gives a good overview of all the steps needed to run your scripts in your function. To get the files of the Teams module use this PowerShell command:&lt;code&gt;Save-Module MicrosoftTeams -Repository PSGallery -Path &amp;quot;YOUR\_PATH&amp;quot;&lt;/code&gt;The directory should look like this now: &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2017/11/TeamsModuleDir.png" alt=""&gt; You can use ftp now to upload the whole &amp;ldquo;MicrosoftTeams&amp;rdquo; folder to a subfolder called &amp;ldquo;Modules&amp;rdquo; in your Azure Function. The expected folder structure should be like this: &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2017/11/TeamsModuleDirFunction.png" alt=""&gt; Now you can start to use the Teams cmdlets in your Azure Function, or at least you should be able to do so. But instead I get an error like this:&lt;code&gt;2017-11-03T22:30:42 Welcome, you are now connected to log-streaming service. 2017-11-03T22:30:47.755 Function started (Id=a77121f1-2023-4d02-8974-8d182a2b657c) 2017-11-03T22:30:52.637 Loaded modules: /TeamsRemoteAPI/modules/MicrosoftTeams/0.9.0/MicrosoftTeams.psd1 /TeamsRemoteAPI/modules/MicrosoftTeams/0.9.0/Microsoft.IdentityModel.Clients.ActiveDirectory.dll /TeamsRemoteAPI/modules/MicrosoftTeams/0.9.0/Microsoft.IdentityModel.Clients.ActiveDirectory.Platform.dll /TeamsRemoteAPI/modules/MicrosoftTeams/0.9.0/Microsoft.Open.Teams.CommonLibrary.dll /TeamsRemoteAPI/modules/MicrosoftTeams/0.9.0/Microsoft.TeamsCmdlets.PowerShell.Custom.dll /TeamsRemoteAPI/modules/MicrosoftTeams/0.9.0/Newtonsoft.Json.dll /TeamsRemoteAPI/modules/MicrosoftTeams/0.9.0/RestSharp.dll /TeamsRemoteAPI/modules/MicrosoftTeams/0.9.0/MicrosoftTeams.psm1 2017-11-03T22:30:56.196 Import-Module : The specified module 'D:\\home\\site\\wwwroot\\TeamsRemoteAPI\\modules\\MicrosoftTeams\\0.9.0\\Microsoft.Open.Teams.CommonLibrary.Resources.dll' was not loaded because no valid module file was found in any module directory.at &amp;lt;ScriptBlock&amp;gt;, /TeamsRemoteAPI/modules/MicrosoftTeams/0.9.0/MicrosoftTeams.psm1: line 14+ Import-Module+ \_\_\_\_\_\_\_\_\_\_\_\_\_ + CategoryInfo : ResourceUnavailable: (D:\\home\\site\\ww...y.Resources.dll:String) \[Import-Module\], FileNotFoundException + FullyQualifiedErrorId : Modules\_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand.&lt;/code&gt;All we try at this moment in the function looks like this:```
$secpasswd = ConvertTo-SecureString &amp;lsquo;MY_PWD&amp;rsquo; -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential (&amp;ldquo;MY_USER&amp;rdquo;, $secpasswd)&lt;/p&gt;</description></item><item><title>Microsoft Teams Automation - Create Team from Webhook</title><link>https://thomygoelles.com/microsoft-teams-automation-create-team-from-webhook/</link><pubDate>Fri, 03 Nov 2017 17:54:49 +0000</pubDate><guid>https://thomygoelles.com/microsoft-teams-automation-create-team-from-webhook/</guid><description>&lt;p&gt;Today Microsoft released the Microsoft Teams Powershell Cmdlets module (&lt;a href="https://www.powershellgallery.com/packages/MicrosoftTeams/0.9.0" target="_blank" rel="noopener"&gt;https://www.powershellgallery.com/packages/MicrosoftTeams/0.9.0&lt;/a&gt;). This allows you to use PowerShell as the first basic API for Teams. Bill Bliss (@bill_bliss) from the Teams Team (still awkward wording) told us this week on Monday in a session at Microsoft Vienna that they will push the PowerShell Cmdlets in the coming weeks and the Graph API will follow. To be honest didn&amp;rsquo;t believe that they would be that fast in releasing the bits but I&amp;rsquo;m more than happy now. To take this a little further I created an Azure Automation Runbook for the CreateTeams Cmdlet in my Azure Tenant. The Runbook itself can be triggered by a webhook. With that in hand, you basically can create a bot or a Teams app to create or update your Teams based on the cmdlets Microsoft released.   The Runbook I created uses the basic steps for reading input from the webhook based on this blog post: &lt;a href="https://blogs.technet.microsoft.com/stefan_stranger/2017/03/18/azure-automation-runbook-webhook-lesson-learned/" target="_blank" rel="noopener"&gt;https://blogs.technet.microsoft.com/stefan_stranger/2017/03/18/azure-automation-runbook-webhook-lesson-learned/&lt;/a&gt;```
[CmdletBinding()]
Param
([object]$WebhookData) #this parameter name needs to be called WebHookData otherwise the webhook does not work as expected.
$VerbosePreference = &amp;lsquo;continue&amp;rsquo;&lt;/p&gt;</description></item><item><title>AzureFunctions, DateTime.Now and why CultureInfo matters</title><link>https://thomygoelles.com/azurefunctions-datetime.now-and-why-cultureinfo-matters/</link><pubDate>Sun, 24 Sep 2017 10:40:42 +0000</pubDate><guid>https://thomygoelles.com/azurefunctions-datetime.now-and-why-cultureinfo-matters/</guid><description>&lt;p&gt;This post maybe is only for myself to finally remember the differences between on-premises and cloud in terms of environment variables. I&amp;rsquo;m currently working on some features for MoCaDeSyMo that are based on AzureFunctions and Visual Studio 2017. Since one of the previews, you are now allowed to build your own custom libraries and use them in an AzureFunctions project. Furthermore, you can now easily test and run your AzureFunction on your local computer. That&amp;rsquo;s a huge deal compared to publish the function every time or compared to the time you need to attach the remote debugger to your function running in the cloud. So for the last couple of days I only tested my function locally and of course, everything worked fine. After publishing it I got a 500 internal server error back. Ok, nothing new, something is different between local and cloud. So let&amp;rsquo;s find the difference. Turns out there is a new version of the AzureFunction tooling in VS so I updated this. After some hours I got to the point that something is messing around with my connection to the Azure storage table I use. Still, everything works fine when tested locally but now I get a 400 bad request back from the Azure storage table. Now only remote debugging can help and by the way that&amp;rsquo;s a damn cool thing if you think of it. Debugging your cloud function locally. Nevertheless, turns out that the bug is somewhere in those lines of code: &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2017/09/errorAFdatetime.png" alt=""&gt; Again, everything works perfectly on my local machine but crashes somewhere here when published to the cloud. The experienced guys maybe solve it within the blink of an eye, but it took several hours for me.  The difference is the result you get back from DateTime.Now.Date.ToShortDateString(). My AzureFunctions run somewhere in the US, with an us-US CultureInfo as base culture for the current thread. On my local machine, the base CultureInfo is de-AT so in terms of date, the difference is obviously MM/dd/yyyy versus dd.MM.yyyy. That&amp;rsquo;s the &amp;ldquo;only&amp;rdquo; difference in terms of the code. At first, I was like, ok that&amp;rsquo;s not a big deal, I can handle that different date format in the database and I don&amp;rsquo;t care if my dev tables get mixed up with different formats.    But turns out there is a list of characters you are not allowed to use in a RowKey column in an Azure storage table. And of course, &amp;ldquo;/&amp;rdquo; is one of them.  So the code worked fine in a de-AT environment because of the dd.MM.yyyy but crashed in an us-US one where the format is MM/dd/yyyy.  Sometimes the smallest things you already know come back and haunt you for hours &amp;hellip;&lt;/p&gt;</description></item><item><title>Microsoft MVP - Most Valueable Professional for the very first time</title><link>https://thomygoelles.com/microsoft-mvp-most-valueable-professional-for-the-very-first-time/</link><pubDate>Sat, 01 Jul 2017 17:43:51 +0000</pubDate><guid>https://thomygoelles.com/microsoft-mvp-most-valueable-professional-for-the-very-first-time/</guid><description>&lt;p&gt;Today I received an email informing me that Microsoft awarded me the MVP award for the Office Servers and Services category. I&amp;rsquo;m very humbled and proud of beeing in this group of special people and will do my best to stay there in the future. &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2017/07/mvp_logo_horizontal_preferred_cyan300_rgb_300ppi.png" alt=""&gt; Those awards are at some level a personal thing but not possible without an environment where sharing information and helping others is part of the culture. I&amp;rsquo;m very happy that at Solvion we live and breathe this common set of values and beliefs because culture eats strategy for breakfast.  A big thank you to everyone at Solvion making this possible. There are way too many names to list, and chances are I would miss someone out, so I will just stick with this big general shout out to every single Solvionesen!  At last but not least I would like to thank one person in particular. &lt;a href="https://twitter.com/AndrewWoody" target="_blank" rel="noopener"&gt;Andrew Woodward&lt;/a&gt;. Andrew, you were one of the very first MVPs I ever met. It was back in 2009 in Slovenia where I attended my very first SharePoint conference. I got addicted to the SharePoint community there. Your passion for SharePoint and development in general truly was a game changer for me. I read every single post on your blog and followed every single hint and advice you gave on all the different channels. The governance and information architecture master class you organised together with Paul Culmsee, introducing us to a mindset that goes way beyond just the technology for sure had a career defining influence on me. Without your influence, I wouldn&amp;rsquo;t write this post today. Thank you very much and all the best!&lt;/p&gt;</description></item><item><title>Raspberry Pi + Azure Functions + Cognitive Services + Microsoft Teams -&gt; How a Pi informs us about lunch</title><link>https://thomygoelles.com/raspberry-pi--azure-functions--cognitive-services--microsoft-teams-how-a-pi-informs-us-about-lunch/</link><pubDate>Mon, 26 Jun 2017 21:08:34 +0000</pubDate><guid>https://thomygoelles.com/raspberry-pi--azure-functions--cognitive-services--microsoft-teams-how-a-pi-informs-us-about-lunch/</guid><description>&lt;h2 id="introducing-mocadesymo"&gt;Introducing MoCaDeSyMo&lt;/h2&gt;
&lt;p&gt;Like every other office, ours also has different opportunities for lunch. You can take your break and visit the cafeteria, you can order food from some local restaurants or you can just step outside and buy something from the food truck. I&amp;rsquo;m a regular food truck buyer, but this option has some downsides. My office is on the other side from the front door, so I don&amp;rsquo;t see the guy arriving. This means I end up &amp;ldquo;pinging&amp;rdquo; colleagues with a direct line of sight regularly in Skype for Business in order to get some information about when I should go for lunch. Right now there are only a few people in our team with a window facing the front door so they end up getting pinged a lot. To end their misery we came up with the idea of some type of push notification.  The first idea was about writing a mobile app that the driver of the food truck installs on his phone. This app should recognise our GPS coordinates and push a simple message to Azure upon arrival at our front door. This could have worked but had a dependency on the driver&amp;rsquo;s phone and his free will to join the idea. After some further thinking, we came up with the idea of using a Raspberry Pi that takes pictures of the scene and uploads them and uses cognitive services to check whether the food truck is present or not. So without further ado, here is &lt;strong&gt;MoCaDeSyMo&lt;/strong&gt;:  &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2017/06/mocadesymo.png" alt=""&gt; &lt;strong&gt;MoCaDeSyMo&lt;/strong&gt;(mobile carbohydrate delivery system monitor) is the red fellow on the left of the picture. Insides his red body is a Raspberry Pi 3 and the default Pi camera module.  On weekdays between 10:45 and 11:30 MoCaDeSyMo takes a picture every minute and tries to detect the food truck of a local snack bar called &amp;ldquo;Imbiss Rainer&amp;rdquo;. His main target is to recognise something like this: &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2017/06/image0025.png" alt=""&gt; To make sure everyone on the team knows about the arrival of the truck MoCaDeSyMo uses Azure Cognitive Services to predict the presence of the food truck and if the probability is above a given threshold a Microsoft Teams connector gets triggered and we get notified with a message like this: &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2017/06/teams-message.png" alt=""&gt; This post discusses how we created the system based on this high-level architecture: &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2017/07/architecture_food_bot.png" alt=""&gt;&lt;/p&gt;</description></item><item><title>SharePoint Wiki Bot - How to automate the Azure QnAMaker bot knowledgebase</title><link>https://thomygoelles.com/sharepoint-wiki-bot-how-to-automate-the-azure-qnamaker-bot-knowledgebase/</link><pubDate>Sun, 12 Mar 2017 19:04:46 +0000</pubDate><guid>https://thomygoelles.com/sharepoint-wiki-bot-how-to-automate-the-azure-qnamaker-bot-knowledgebase/</guid><description>&lt;h3&gt;&lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2017/03/result.png" alt=""&gt;&lt;/h3&gt;
&lt;h3 id="tldr"&gt;&amp;lt;TL;DR&amp;gt;&lt;/h3&gt;
&lt;p&gt;This post shows a proof of concept implementation of an Azure QnAMaker bot that gets its knowledgebase updated by changes in a SharePoint wiki. The main idea is, that you use a wiki as some sort of knowledge management system and that changes to the content automatically get pushed to the bot&amp;rsquo;s knowledge base. By adding a SharePoint Webhook to the wiki pages library you can trigger an Azure web job that manages the bot&amp;rsquo;s knowledge base. By using the Azure QnAMaker API the web job publishes changes to the knowledge base so that a connected Azure bot can use it as it&amp;rsquo;s backend data. This way you can add a heading and some text to the SharePoint wiki page and about two minutes later you can ask the bot in Skype or Microsoft Teams about it. Kudos to: &lt;a href="https://twitter.com/wictor" target="_blank" rel="noopener"&gt;Wictor Wilén&lt;/a&gt;, &lt;a href="https://twitter.com/O365Bert" target="_blank" rel="noopener"&gt;Bert Jansen&lt;/a&gt; and &lt;a href="https://twitter.com/paulschaeflein" target="_blank" rel="noopener"&gt;Paul Schaeflein&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>How to create your own Q&amp;A bot for Microsoft Teams without code</title><link>https://thomygoelles.com/how-to-create-your-own-qa-bot-for-microsoft-teams-with-no-code/</link><pubDate>Sun, 05 Mar 2017 18:46:37 +0000</pubDate><guid>https://thomygoelles.com/how-to-create-your-own-qa-bot-for-microsoft-teams-with-no-code/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Yesterday at SharePoint Saturday Munich I had the pleasure to attend Wictor Wilén&amp;rsquo;s session on extending Microsoft Teams. In this session Wictor showed some great demos and even announced the availability of a Yeoman generator for creating new Tabs in Teams (&lt;a href="http://www.wictorwilen.se/yo_teams-tab" target="_blank" rel="noopener"&gt;http://www.wictorwilen.se/yo_teams-tab&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Wictor&amp;rsquo;s talk inspired me to give the Microsoft Bot Framework a try and so I started creating a bot in my Azure tenant by the guidance of this blog post:&lt;a href="https://blogs.msdn.microsoft.com/bluesky/2016/12/22/introduction-to-qna-maker-en/" target="_blank" rel="noopener"&gt;Create BOT from FAQ page with no coding — QnA Maker as new member of Cognitive Service&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>UPDATED: Yammer: new private messaging experience</title><link>https://thomygoelles.com/updated-yammer-new-private-messaging-experience/</link><pubDate>Mon, 27 Feb 2017 11:01:16 +0000</pubDate><guid>https://thomygoelles.com/updated-yammer-new-private-messaging-experience/</guid><description>&lt;p&gt;In the last couple of days, Microsoft pushed a new UI to our Office365 Yammer tenant. Looks like we are one of those they test the new private messaging experience on. Let&amp;rsquo;s have a look what it&amp;rsquo;s like: &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2017/02/overview.png" alt=""&gt; There is a new section called Private Messages on the bottom left of the navigation bar. You see the names of those you messaged in private mode lately. Also if you have a close look the gear, the entry point to the settings or for switching networks moved. It is now on the top right of the navigation bar and not on the bottom as it used to be. Just a heads-up if you need to change networks like I do, you will be slightly distracted by looking for it down there. More details to that feature can be found at: &lt;a href="https://techcommunity.microsoft.com/t5/Yammer-Blog/Improvements-to-the-Private-Messaging-Experience-in-Yammer/ba-p/33161" target="_blank" rel="noopener"&gt;https://techcommunity.microsoft.com/t5/Yammer-Blog/Improvements-to-the-Private-Messaging-Experience-in-Yammer/ba-p/33161&lt;/a&gt; In terms of roadmap this feature is still under &amp;ldquo;in devlopment&amp;rdquo; not under &amp;ldquo;rolling out&amp;rdquo; but it&amp;rsquo;s cool to see that there are things coming, nevertheless we are all still waiting for things like edit posts. Update After shooting out my blog post the Yammer twitter handle reached back and provided some insights. If you are familiar with the way tech companies &amp;ldquo;pre-communicate&amp;rdquo; things on their roadmap, I think we can agree on the fact, that this is just around the corner. &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2017/02/answeryammer.png" alt=""&gt;&lt;/p&gt;</description></item><item><title>SharePoint PnP Partner Story - How we use the PnP in the Solvion WorkBox</title><link>https://thomygoelles.com/sharepoint-pnp-partner-story-how-we-use-the-pnp-in-the-solvion-workbox/</link><pubDate>Sun, 19 Feb 2017 16:25:11 +0000</pubDate><guid>https://thomygoelles.com/sharepoint-pnp-partner-story-how-we-use-the-pnp-in-the-solvion-workbox/</guid><description>&lt;p&gt;A couple of weeks ago we had the opportunity to sit down with &lt;a href="https://twitter.com/vesajuvonen" target="_blank" rel="noopener"&gt;Vesa Juvonen&lt;/a&gt; and record a webcast about the &lt;a href="http://workbox.solvion.net/workbox-en.html" target="_blank" rel="noopener"&gt;Solvion WorkBox&lt;/a&gt;. Vesa is one of the masterminds behind  The SharePoint / Office 365 Dev Patterns &amp;amp; Practices (PnP) initiative at Microsoft. If you are not familiar with their great work, it&amp;rsquo;s never too late to learn something new.  -&amp;gt; &lt;a href="https://dev.office.com/patterns-and-practices" target="_blank" rel="noopener"&gt;https://dev.office.com/patterns-and-practices&lt;/a&gt; The webcast puts a focus on the architecture and the user interface of our WorkBox. You will hear and see what we did in terms of going hybrid and how we ended up creating a seamless Office365 look and feel in the solution. You find the full article at the Office Dev Center &lt;a href="https://dev.office.com/blogs/sharepoint-pnp-partner-story-how-solvion-is-using-pnp-assets" target="_blank" rel="noopener"&gt;here&lt;/a&gt;. Here the youtube video:   And also the slides:&lt;/p&gt;</description></item><item><title>Access denied. When uploading a file to the masterpage gallery fails</title><link>https://thomygoelles.com/access-denied-when-uploading-a-file-to-the-masterpage-gallery-fails/</link><pubDate>Mon, 16 Jan 2017 22:09:12 +0000</pubDate><guid>https://thomygoelles.com/access-denied-when-uploading-a-file-to-the-masterpage-gallery-fails/</guid><description>&lt;p&gt;A few weeks ago we hit a blocker in one of our projects. We were trying to configure the root site collection of a tenant in terms of uploading a custom page layout. Every time we tried we got &amp;ldquo;Sorry, you don&amp;rsquo;t have access to this page&amp;rdquo; &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2017/01/accessdenied.png" alt=""&gt; When you see something like this as a site collection admin, at least it&amp;rsquo;s odd. After playing around with setting the permissions again and double check die administrator rights we started searching the net for help. We came around some blogs that told us to delete the site collection and start all over again. We hadn&amp;rsquo;t done much yet so no problem, but it was the root site collection and this one indeed is special. After discussing the topic we decided to play it safe and ask support for help because recreating the root site of a tenant sounds not right. Today the ticket got finally back to me and I had the chance to work with the support person on this topic. It took him literally two seconds to point me in the right direction. We had to change the following setting: &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2017/01/customscript.png" alt=""&gt; This allows users to run a custom script in the site collections. We also set it for the given site collection with a special powershell command (Set-SPOsite &lt;SiteURL&gt; -DenyAddAndCustomizePages 0) and boom it worked. I was kind in a hurry, so just wrapped the call up with the support agent and off he was and I was a happy customer. Later today I had a few minutes to reflect upon this case and something felt wrong. It&amp;rsquo;s just, why wasn&amp;rsquo;t this a problem at any other site? Why only the root site? What has a custom script permission to do with preventing a site collection admin from uploading a file to the master page gallery? So I started reading the help link next to the &amp;ldquo;custom script&amp;rdquo; setting in the O365 admin centre. Turns out that this feature is activated by default on the root site collection for security reasons. Basically, it only allows a site owner to upload artefacts to the master page gallery. Every other site collection we tried was indeed created by our user, so this setting didn&amp;rsquo;t apply. To quote the page: &lt;em&gt;&amp;ldquo;The ability to add&lt;/em&gt; custom &lt;em&gt;script to sites and pages is controlled by the Add and Customize Pages permission. While the global admin, can specify which users and groups are granted this permission, anyone who creates personal sites and team sites is by default, a site owner. A site owner can add any script they want to the pages on that site.&amp;quot;&lt;/em&gt; &lt;a href="https://support.office.com/en-us/article/Turn-scripting-capabilities-on-or-off-1f2c515f-5d7e-448a-9fd7-835da935584f" target="_blank" rel="noopener"&gt;https://support.office.com/en-us/article/Turn-scripting-capabilities-on-or-off-1f2c515f-5d7e-448a-9fd7-835da935584f&lt;/a&gt; I like the reason, don&amp;rsquo;t get me wrong, I really do. But in terms of a permission concept and also in terms of proper error messages this just feels like unfinished work. I have some issues with this approach: 1.) I&amp;rsquo;m connected as a global admin with site collection admin rights, I can do much worse than uploading some bad code to the master page gallery. I have trillion other ways to break the thing, why blocking me here? 2.) If the code block that stops my upload would be designed to also check if the current user is a site collection admin, it could point me directly to this setting, because it&amp;rsquo;s the only other reason why I shouldn&amp;rsquo;t be allowed to do this. 3.) I have to activate a setting that says &amp;ldquo;Allow users to run custom script on personal sites&amp;rdquo; and &amp;ldquo;Allow users to run run custom script on self-service sites&amp;rdquo; to be able to upload a file to the master page gallery as a site collection admin. I know the link next to the settings describes that the root site collection is special, but in no way you can guess this from the description and wording here. You have to know this stuff or in other words you probably need to hit this at least once in your SharePoint life&amp;hellip;   To wrap it up, I hope this article helps anyone hitting the same issue and yes I do think there is some room left for improvement.&lt;/p&gt;</description></item><item><title>The O365 app launcher - your digital workplace/intranet start menu</title><link>https://thomygoelles.com/the-o365-app-launcher-your-digital-workplace/intranet-start-menu/</link><pubDate>Fri, 16 Dec 2016 22:00:51 +0000</pubDate><guid>https://thomygoelles.com/the-o365-app-launcher-your-digital-workplace/intranet-start-menu/</guid><description>&lt;p&gt;The last couple of months Microsoft added some major updates to the top left navigation menu in Office 365, the app launcher. You are now able to add custom tiles with a title and a custom image to the app launcher. Furthermore, if you are already on SharePoint 2016 and use it in a hybrid configuration connected to Office 365 your app launchers can be combined. That allows you to serve the same tiles in the cloud and on premises. So far so good, but that&amp;rsquo;s only the introduction part. If you plan to use SharePoint Online for different workloads you may end up designing an information architecture that uses more than just one site collection. If you create a portal with this architecture a consistent navigation is helpful to guide your users, just to make sure they are not lost on the different site collection pages. As the majority of people started their SharePoint endeavour before they went to the cloud, some of them already have some experience in customising SharePoint and especially the navigation part. Their users also have at least some experience in just browsing different web pages and that&amp;rsquo;s why you end up discussing how you can integrate a &amp;ldquo;global navigation&amp;rdquo; somewhere in the red area of the screenshot below. &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2016/12/globalnav.png" alt=""&gt; If you knew the trick you even could create such navigation elements in SharePoint 2013 just by using a special PowerShell command. Of course, we used this approach in our projects what in some cases looked like this: &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2016/12/tbnavold.png" alt=""&gt; You can build such navigations by customising your masterpage or injecting some JavaScript into the right places. As a data source, you can use a simple XML or JSON file or if you want your SharePoint admins to edit it in an easy way you use the managed metadata service as a source. Office 365 on the other hand, has some other plans with this first part of your page, to be accurate we are talking now about the red part of the screenshot below: &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2016/12/O365Topbar.png" alt=""&gt; If you just look at it and remember the tools you built for on premises, your first clue is probably to put your global navigation here. Again you can achieve this by changing the masterpage or some JavaScript. But in O365 the trouble has started just now &amp;hellip; First of all this top bar was changed, I think at least three times in 2015. So your custom navigation maybe had to be changed multiple times and guess what, nobody warned you about that. Second of all, if you start with let&amp;rsquo;s say SharePoint online as the first workload in O365 chances are your users will also use different other services provided by their license. How&amp;rsquo;s the top bar gonna look like in OneDrive or Delve if you customised only the SharePoint masterpage? Plain simple you are unable to provide a true global navigation across all the different O365 services by just changing the SharePoint masterpage. That&amp;rsquo;s why Microsoft provides the app launcher. To be fair, even the app launcher isn&amp;rsquo;t working in exact same terms across all the different parts of O365, but for sure sooner or later it will be. So to enable a true integration of your services in O365 you should think of an approach like this: &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2016/12/AppLauncherNew.png" alt=""&gt; With this approach, you have to think of your different portals like any other service in O365. Your end users will love the consistent integration of custom services in the native Microsoft environment. If a new important service is ready just add a tile to the app launcher. Best part, if Microsoft adds new services they will also end up in the app launcher.&lt;/p&gt;</description></item><item><title>Solvion WORKBOX Webcast and SharePoint Days Munich</title><link>https://thomygoelles.com/solvion-workbox-webcast-and-sharepoint-days-munich/</link><pubDate>Wed, 07 Dec 2016 22:42:51 +0000</pubDate><guid>https://thomygoelles.com/solvion-workbox-webcast-and-sharepoint-days-munich/</guid><description>&lt;p&gt;Like every year December is super busy. To save you some time this blog post will only highlight the news of the coming days. Next week on the 14th and 15th of December we will deliver a one-hour webcast about our Modern Workplace Solution Solvion WORKBOX. For details and registration please visit &lt;a href="http://workbox.solvion.net/workbox-en.html#kontakt" target="_blank" rel="noopener"&gt;http://workbox.solvion.net/workbox-en.html#kontakt &lt;/a&gt; Tomorrow on the 8th I will be presenting at the SharePoint Days 2016 in Munich. If you find the slides interesting, feel free to ping me.    &lt;/p&gt;</description></item><item><title>Our Yammer statistics and how to use it for comments on intranet pages</title><link>https://thomygoelles.com/our-yammer-statistics-and-how-to-use-it-for-comments-on-intranet-pages/</link><pubDate>Fri, 18 Nov 2016 22:16:31 +0000</pubDate><guid>https://thomygoelles.com/our-yammer-statistics-and-how-to-use-it-for-comments-on-intranet-pages/</guid><description>&lt;p&gt;Yammer is something special. In all my years in the &amp;ldquo;Microsoft ecosystem bubble&amp;rdquo; it feels like it is the one piece of software that rather divides then units the community. It all started when Microsoft bought Yammer in June 2012. On this day I was at a SharePoint conference in Vienna and I have a good memory of the talking that started there. If believing in coincidences is the way you think the world works, no problem, but if you have a basic understanding of economics and the idea of tax paying, one might see a system in Microsoft buying other companies in June as it is the last month in their given fiscal year. That day in June 2012 I did exactly what Yammer wanted you to do. Create a network without asking someone in IT. Of course our company back then was only about 25 people in size, but nevertheless the journey started here. To get you up to speed have a look at the statistics of our last 28 days. &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2016/11/Yammer01.png" alt="yammer01"&gt; 86,519 messages in four and a half years with our limited user count isn&amp;rsquo;t that bad. On the other side have a look on how we use groups in Yammer: &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2016/11/Yammer02.png" alt="yammer02"&gt; We ended up creating a group for every customer, project and internal topic of interest. Basically we got rid of internal emails years ago. We don&amp;rsquo;t stick to a &amp;ldquo;you are not allowed to&amp;rdquo; policy, because of course there are use cases where it&amp;rsquo;s better to shoot somebody a mail. But if you ask anyone around roughly 90% of the internal stuff is communicated in Yammer. Yammer is far from perfect, don&amp;rsquo;t get me wrong. We would love to have a better search experience for example. Moving Yammer into O365 was a massive step, something it looks like Microsoft under estimated in 2012, but still integration of AD groups for example is something we would look forward to. Another missing feature is editing your posts, I know it&amp;rsquo;s coming, but you have the feeling that four and a half years is a very long time range for such basic features. A couple of weeks ago Microsoft announced Teams. As soon as I saw it I already imagined the &amp;ldquo;is yammer dead&amp;rdquo; questions. My point of view is different here. I can think of moving some of our groups to Teams. Maybe even most of them, but definitely not all. So today I think we will still use Yammer even after starting with teams, but this could be a total different story in your environment. As Microsoft still lacks some basic features in terms of integrating Yammer in SharePoint we ended up adding our own way. We started some ground work in terms of how to comment on a SharePoint news page within yammer. Let&amp;rsquo;s start with a basic page layout for an article page. &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2016/11/Yammer03.png" alt="yammer03"&gt; That&amp;rsquo;s just a test page in your dev tenant, but you can see a grey Yammer logo on the bottom right of the page. It&amp;rsquo;s greyed out because I opened the page in Firefox and I&amp;rsquo;m not logged in yet. If I open Yammer in other browser tab, I&amp;rsquo;m authorized and the page changes to this: &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2016/11/Yammer04.png" alt="yammer04"&gt; Of course you can already think of what this is about. We ended up using the graph API to create a graph object for this aspx page in Yammer. This enables us to load comments the same way Microsoft does on the delve board for example. As a user you have three options to add a comment here. First you can just start replying on a given comment right where it says &amp;ldquo;write a reply&amp;rdquo;. To start a new comment just start typing in the top box next to your user image. But what if you want to post your comment to a different group? Or what about using an announcement to notify a bunch a people even on their mobile? The third option is right behind the now blue Yammer logo and after clicking on it your screen looks like this: &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2016/11/Yammer05.png" alt="yammer05"&gt; Sorry for the German here, but I think you get the idea anyway. The first dropdown allows you to choose the group you want to post to. &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2016/11/Yammer06.png" alt="yammer06"&gt; The dropdown also has the information if a given group is a private group or if you as a user are in an admin role and can post an announcement to it. After the group selection you just add a teaser and some text and click on publish. The fly out will post your comment to the given group as a graph object by using a defined yammer app for the API access. The post in yammer will include the link to your page and uses the url of it as the main key to the entry. &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2016/11/Yammer07.png" alt="yammer07"&gt; Here the result of the entry on our article page: &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2016/11/Yammer08.png" alt="yammer08"&gt; And the yammer part: &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2016/11/Yammer09.png" alt="yammer09"&gt;   As a news author you can use this feature for pushing out a notification of your intranet article to all users of a given yammer app even on their mobile. A feature we think a modern intranet should be capable of.   In terms of implementing this feature full credit goes to &lt;a href="https://www.xing.com/profile/Stephan_Schreiber14/" target="_blank" rel="noopener"&gt;Stephan Schreiber&lt;/a&gt; who spent some days and nights with the graph API and the way Yammer uses authentication to make this possible.&lt;/p&gt;</description></item><item><title>Copy and Move to SharePoint - Copy rolling out already?</title><link>https://thomygoelles.com/copy-and-move-to-sharepoint-copy-rolling-out-already/</link><pubDate>Mon, 07 Nov 2016 21:21:06 +0000</pubDate><guid>https://thomygoelles.com/copy-and-move-to-sharepoint-copy-rolling-out-already/</guid><description>&lt;p&gt;A few minutes ago I checked my OneDrive for Business and uploaded some files. As I managed to upload them to the wrong folder I wanted to move them with the built in feature. When I clicked on the command bar in our first release tenant the following menu caught my eye: &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2016/11/OD4B-Copy2.png" alt="od4b-copy2"&gt; Sorry for the German language at the user interface, but it looks like I&amp;rsquo;m able to copy my file to not only a different folder but also to different locations! The sidebar suggests groups and team sites I&amp;rsquo;m following. I&amp;rsquo;m not able to browse to any other locations, but I was able to load more destinations that are all in my following list. I just checked roadmap.office.com: &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2016/11/OD4B-Copy2Announcement.png" alt="od4b-copy2announcement"&gt; Seems like it&amp;rsquo;s rolling out already &amp;hellip; To add some rumors, maybe that&amp;rsquo;s something Jeff Tepper tweeted about today:  &lt;/p&gt;</description></item><item><title>Cross Site Publishing and Variations: hands-on experience</title><link>https://thomygoelles.com/cross-site-publishing-and-variations-hands-on-experience/</link><pubDate>Mon, 24 Jun 2013 21:53:36 +0000</pubDate><guid>https://thomygoelles.com/cross-site-publishing-and-variations-hands-on-experience/</guid><description>&lt;p&gt;Over the last months we had the chance to get our hands dirty in the new 2013 way. In this post I want to share some of the decisions we made by using the content by search webpart and the variations feature heavily. &lt;strong&gt;Introduction&lt;/strong&gt; Late last year a customer asked us to implement a partner portal. He thought about a different publisher area where he is able to manage the content in German and a portal for each language group available. He wanted the upload use case as simple as possible to allow his co-workers to update the information without any further assistance. Also he requested to “somehow” tag the content for all other languages (FR, EN, IT, RU, CN) in German because they are not able to support all languages in the upload team. They also wanted to display the files in a “nice” way and the standard SharePoint list wasn’t included in their definition of nice. All user data (username, passwords) already existed from the up and running partner portal in use so we had to build a solution integrating all of this users in SharePoint. Also we had to guarantee that people from a defined language group can only access content of their configured language. &lt;strong&gt;How we did it&lt;/strong&gt; Actually we already thought about XSP (Cross Site Publishing) and variations in our very first meeting. At this time we also thought that managed metadata navigation will be a good way to handle all the navigation settings in the portal, but … yeah that was plain wrong. Remember: you are not able to configure security trimmed links via managed metadata navigation. Everybody with access to the selected web will see all configured navigation links. For me that was a huge surprise. I had in mind that SharePoint *always* handles the navigation in the security context for the current user. With managed navigation that is not the case. So if you want to put some security in your navigation, you can’t use this new set of features. The XSP on the other hand worked like charm. We set up a document library as a catalogue for the content by search webpart. We used a term store to tag all the documents with the right category. To allow a real fast upload and publish process we mixed the metadata with a folder structure and worked with the default column values for the different folders. This enables the publisher to open that special library with the explorer view and allows a very fast upload with integrated tagging. For the ease of use we just implemented one document library with root folders for each language. From there on every language has a different subset of all available elements. The German portal hast the most content and every other language has just a subset of the German folder structure. With this folder structure the author only has to copy the documents to the right folder without any further configuration. Furthermore the author never has to actually update something in the user’s area. The only reason to browse the documents is to see if search already picked up the changes. Next step was to configure the variation root and the needed languages. In a first phase we built the German portal, so the variations generated a sub web with /de-de as our start url. In this web we created different web part pages for every content category. On every webpart page we configured a content by search webpart filtering on the specific content category. By using a custom display template we were able to show some specific information and a thumbnail for each element. That was some kind of tricky because we had to display documents and images as well with the same display template. If you dig deep into a search results node you recognize that the url to your element is different for documents and images, so you can’t build your href the same way. SharePoint always gives you the link to the display form for images in a document library if you use the Path property. You have to use a special property (DefaultEncodingURL) to get the full href to the specific picture. &lt;strong&gt;Security&lt;/strong&gt; In terms of security we used SharePoint groups heavily. Every language has about 10 types of different user groups with different access rights. Both, the authoring web and the variation webs are security aware. All users are stored in a SQL database that is configured as a FBA membership provider source in SharePoint. Within the FBA administration every user can be configured for a different role in the portal. &lt;strong&gt;Adding a new language&lt;/strong&gt; The task of adding a new language to the portal is accomplished by a mix of hands on configuration and some powershell scripts. All content is uploaded to an instance of the defined folder structure and tagged properly. The variations feature creates the new subweb with the target language. The SharePoint standard user interface supports the language by installing the right language pack. All custom menu entries at the navigation configuration have to be updated with the translated terms. All webpart headings are set via a powershell script. We used some of Gary Lapointe’s powershell magic to update webpart properties. &lt;strong&gt;Conclusion&lt;/strong&gt; The out of the box features of cross site publishing and variations are really a huge step forward for the product. Yes they are built with a little focus on web publishing and anonymous access where also managed metadata navigation integrates well. But I hope this post gives you an idea how this features can also be used in a security aware intranet solution. &lt;strong&gt;References:&lt;/strong&gt; Without the help of this blogs and articles we never could have accomplished the given task! Thx!&lt;/p&gt;</description></item><item><title>Social Networks. An explanation that sticks.</title><link>https://thomygoelles.com/social-networks.-an-explanation-that-sticks./</link><pubDate>Wed, 18 Jul 2012 16:25:26 +0000</pubDate><guid>https://thomygoelles.com/social-networks.-an-explanation-that-sticks./</guid><description>&lt;p&gt;If you still think social networks is about tech click on replay.&lt;/p&gt;</description></item><item><title>Document Management in SharePoint 2010 Series Part 1</title><link>https://thomygoelles.com/document-management-in-sharepoint-2010-series-part-1/</link><pubDate>Tue, 17 Jul 2012 20:51:00 +0000</pubDate><guid>https://thomygoelles.com/document-management-in-sharepoint-2010-series-part-1/</guid><description>&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This post will be the first in a series of posts focusing on document management in SharePoint. The series tries to cover the whole environment of the implementation. We will discuss the different phases we see in such a project. We will start with a analysis phase, we will cover the questions how to decide what content should be moved and which files better stay. We try to give you insights about which end user training approach fits our projects best. For sure we will discuss how to build all the structure, sites, content types, views, …., web parts and so on. We will show how search can be a key success element in such an environment. And we will have a look at all the 3rd party tools we use in terms of end user adoption. All this content will be targeted towards SharePoint 2010 although the last post in the series will give a hint how our approach adopts with the new bits from vNext out there.&lt;/p&gt;</description></item><item><title>Project “move blog” status changed to: done.</title><link>https://thomygoelles.com/project-move-blog-status-changed-to-done./</link><pubDate>Tue, 10 Jul 2012 21:16:56 +0000</pubDate><guid>https://thomygoelles.com/project-move-blog-status-changed-to-done./</guid><description>&lt;h4&gt;&lt;/h4&gt;
&lt;p&gt;&lt;a href="http://www.hereticsguidebooks.com" title="paul.culmsee@sevensigma.com.au" target="_blank" rel="noopener"&gt;Paul Culmsee&lt;/a&gt; - &lt;time datetime="2012-07-11 02:09:52"&gt;Jul 3, 2012&lt;/time&gt;&lt;/p&gt;
&lt;p&gt;Thanks for the positive comment regarding the &amp;ldquo;heretics&amp;hellip;&amp;rdquo; book. Really looking forward to your feedback in the fullness of time&amp;hellip; Paul&lt;/p&gt;
&lt;hr /&gt;</description></item><item><title>Project “move blog” status changed to: done.</title><link>https://thomygoelles.com/project-move-blog-status-changed-to-done./</link><pubDate>Tue, 10 Jul 2012 21:16:56 +0000</pubDate><guid>https://thomygoelles.com/project-move-blog-status-changed-to-done./</guid><description>&lt;p&gt;Quite strange but after two weeks it’s already time to say “Welcome!” again. Welcome to my new blog engine. I moved over from the BlogSpot space to my own server and Wordpress as my new blog engine. All posts and comments from the past can be found here with exception of the “we are moving” post that stays there to inform all readers about the new page.&lt;/p&gt;
&lt;p&gt;I mentioned to start posting on a regular basis two weeks ago. Today I will show you what drives me at the moment an what for sure will be a topic in the next days and weeks.&lt;/p&gt;</description></item><item><title>Back again ;)</title><link>https://thomygoelles.com/back-again/</link><pubDate>Sat, 30 Jun 2012 13:09:00 +0000</pubDate><guid>https://thomygoelles.com/back-again/</guid><description>&lt;h4&gt;&lt;/h4&gt;
&lt;p&gt;&lt;a href="http://www.blogger.com/profile/10726877155897594138" title="noreply@blogger.com" target="_blank" rel="noopener"&gt;Klaus Schwaberger&lt;/a&gt; - &lt;time datetime="2012-07-01 07:31:26"&gt;Jul 0, 2012&lt;/time&gt;&lt;/p&gt;
&lt;p&gt;Thomy, we&amp;rsquo;re really very very happy having you in our team. Thanks for your commitment. Looking forward reading your reactivated blog, klaus&lt;/p&gt;
&lt;hr /&gt;</description></item><item><title>Back again ;)</title><link>https://thomygoelles.com/back-again/</link><pubDate>Sat, 30 Jun 2012 13:09:00 +0000</pubDate><guid>https://thomygoelles.com/back-again/</guid><description>&lt;p&gt;Long time no post. A sentence more than true for this blog. It’s been a while since the last post and yes you are guessing right, some things have changed.&lt;/p&gt;
&lt;p&gt;Don’t’ be afraid I’m still in the whole SharePoint space, actually I think I’m more connected to the product than any time before. At our company we did some great progress in the field and are now a team of about 25 with four Microsoft Gold Competences. Three of them relate to SharePoint and the other one to Lync. At this point I want to shout out a big Thank You to all my colleagues and friends at &lt;a href="http://www.solvion.net" target="_blank" rel="noopener"&gt;Solvion&lt;/a&gt;. I think we’ve created an creative and engaging environment that suits us perfect and our team spirit is protecting us from misunderstandings and huge conflicts. Also I still consider my work to be fun first and job afterwards. Ad multos annos.&lt;/p&gt;</description></item><item><title>TopSharepoint.com</title><link>https://thomygoelles.com/topsharepoint.com/</link><pubDate>Thu, 03 Dec 2009 17:29:00 +0000</pubDate><guid>https://thomygoelles.com/topsharepoint.com/</guid><description>&lt;p&gt;Last weekend I stumbled across a page called TopSharepoint. The page is a gallery of the best internet facing sites done with SharePoint. As we recently announced our new homepage at Solvion I gave it a try and hit the submit button. Neither me nor my colleagues were expecting something to happen, as there are only 707 homepages listed at the moment.&lt;/p&gt;
&lt;p&gt;Today my manager came to my desk and said something about several users hitting our page referred by a site called topofsharepoint.com … yeah we actually made it! We see it as a real honor to be listed there as the page says “… Be advised that TopSharepoint website gallery is reserved for only the highest quality Sharepoint websites from around the world …”&lt;/p&gt;</description></item><item><title>What an awesome autumn!</title><link>https://thomygoelles.com/what-an-awesome-autumn/</link><pubDate>Sun, 29 Nov 2009 11:34:00 +0000</pubDate><guid>https://thomygoelles.com/what-an-awesome-autumn/</guid><description>&lt;p&gt;Puh .. quite a long time since the last, which was even my first posting … I’ll try to update now on a regular basis what is actually quite hard with all the new things flying around :) So where to start? First of all I want to show you the end version of the idea from the first posting. A colleague of mine built a new version of our company’s homepage. I’ll show you how he integrated controls from &lt;a href="http://www.telerik.com/" target="_blank" rel="noopener"&gt;Telerik&lt;/a&gt; and used JQuery in combination with the Content Query Web Part. As written in my last posting, we were working on a news content slider solution for SharePoint. Basically all we used were the CQWP and custom XSL. Now let’s have a look what our solution looks like. As you can see all 8 seconds the image in the center fades out and another shows up. The actual image, the hyperlink and the little text are all meta data from the underlying content page. We put all the meta data in our content pages, like the normal stuff title, text bla bla … additionally we add the image, hyperlink and text we use in the slider on the front page. So the author of the news page provides all the information to the content page and SharePoint renders that information to more than one place on the site. As you can see on the video I had my cursor pointing on the actual image for the first 20 seconds. The solution is hooked to the onmouseover event and stops rotating the content as long as you put the cursor there.  After leaving the area the rotating starts again. The next thing I want to show you is how we used the Telerik Rad Controls in our solution. What we were looking for was a feature that allows us to add a fly out/fly in behavior to the left Navigation. There are JavaScript solutions out in the web doing this, but some of them require to put a content editor web part with a special java script on every page of the site. As our authors aren’t devs or admins we needed to built a solution that provides the feature without editing every single page. So what we did was integrating the &lt;a href="http://www.telerik.com/products/aspnet-ajax/panelbar.aspx" target="_blank" rel="noopener"&gt;PanelBar&lt;/a&gt; from telerik into our master page. And here is what it looks like. So enough for today. Come back soon, as I already prepare postings from the Slovenian SharePoint Conference which was held last week. Awesome information about the new 2010 release of SharePoint and Office. Also some really great talks about Test Driven Development by &lt;a href="http://www.21apps.com/blog/" target="_blank" rel="noopener"&gt;Andrew Woodward&lt;/a&gt; and assembly free solutions by &lt;a href="http://community.zevenseas.com/Blogs/Daniel/default.aspx" target="_blank" rel="noopener"&gt;Daniel McPherson&lt;/a&gt;. Needles to say there also was a SharePint :)&lt;/p&gt;</description></item><item><title>First Posting</title><link>https://thomygoelles.com/first-posting/</link><pubDate>Sat, 05 Sep 2009 00:23:00 +0000</pubDate><guid>https://thomygoelles.com/first-posting/</guid><description>&lt;p&gt;Hello on my new created SharePoint focused Blog! My name is Thomy Goelles, I’m currently working at a Microsoft Gold Partner in Graz, Austria. I’ve been working with the 2007 release of the product since January 2007. Our projects mainly target a SharePoint enablement at small to midsize customers. We didn’t had to update a single 2003 implementation till today. So the real SharePoint hype in our area came with the last version of the product. Our main focus is building intranet solutions. We’ve done only one internet facing site in the last 2,5 years. I think the license for the internet facing ECM solution is a way to big for our typical customer. We tend to guide our customers to the MOSS Standard version. We did a few projects on WSS, but it turns out that sooner or later you are going to develop a custom solution targeting a built in feature form the Standard product. All our custom solutions are 100% WSP packages. We are using the WSP Builder VS project as root of any project. We are faced with farm scenarios with multiple front end servers, so WSP solution packaging really pays out. All our solutions are developed locally, checked in to our team foundation server and are built there. It’s not a 100% CI process, but we are getting there. Currently my personal focus is set on the Content Query Web Part. I really start loving this web part. If your are working with the CQWP you probably came across the more flexible solution built by Imtech public available at &lt;a href="http://imtech.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=12511" target="_blank" rel="noopener"&gt;codeplex&lt;/a&gt;.  This is a real fantastic web part and there is a great blog by a guy called &lt;a href="http://blog.mastykarz.nl/" target="_blank" rel="noopener"&gt;Waldek Mastykarz&lt;/a&gt;. If you are interested in the CQWP this blog is a must read! Inspired by the work done with the CQWP I’m currently working on a “NewsContentSlider” web part. I’m trying to built something like &lt;a href="http://demo.webdeveloperplus.com/featured-content-slider/" target="_blank" rel="noopener"&gt;this&lt;/a&gt; with the content query web part. I’ve done the xslt part in Visual Studio 2008 with the help of a little &lt;a href="http://www.tkachenko.com/blog/archives/000740.html" target="_blank" rel="noopener"&gt;reg hack&lt;/a&gt; to enable intellisense in VS. The solution is already running on my development machine but I still have to fix some minor bugs in the css. Last week a colleague and I discussed about the used jQuery library in the solution. At the moment I’ve included a reference to the Google based jQuery library but as we deploy this tool to a intranet site we tend to host the libraries somewhere in the style library of SharePoint as a internet connection is not a must on a intranet site. This week I came across a tweet saying something about SharePint and Slovenia. So I opened Google searching around for a conference in Slovenia and luckily I found the page. So &lt;a href="http://www.sharepointkonferenca.si/ENG/default.aspx" target="_blank" rel="noopener"&gt;SharePoint Conference Slovenia&lt;/a&gt; is held on 26th of November 2009 in Moravske Toplice. As this is probably a hour away from us we definitely looking forward to do this event and also the SharePint that is planed there.&lt;/p&gt;</description></item></channel></rss>