I’ve been working on a modern intranet project amongst over projects for the last 12-months. This has been more about the transformation of content and business processes, rethinking information architecture and reimagining a modern intranet than it has been about custom development.
We’ve recently been testing variations in the design of a homepage with different audiences. This side-by-side comparison has allowed end-user feedback, performance and accessibility testing. The same approach has also been useful for previewing and testing the capabilities of new features (like the new Yammer web part). The challenge comes when you need to promote or switch over one of these variations as the new site homepage. The homepage is the page users are directed to when first navigating to a site or clicking on the site logo. It is like as important as the index.html or default.aspx page existence to a website. Note that these variations of the homepage permit testing of content and not site configuration. To test navigation, theme or similar we have separate sites and environments for this purpose.
To solve the problem switching the homepage from an existing page whilst preserving the home.aspx page name I’ve leveraged the SharePoint Pnp cmdlets to create a script that will rename or remove the current homepage (and can remove it through a toggle) and then rename an existing page to make it the new homepage.
Use my PnP PowerShell script to replace the home.aspx page
Change the default homepage through SharePoint
Site Owners can use the out-of-the-box make homepage action to make any page the default homepage or welcome page. This is available from the toolbar in the site pages library. But this keeps the page name and means the default page is /sitepages/randompagename.aspx instead of the standard /sitepages/home.aspx that all sites have. From my perspective this is not great. Certainly, intranet-like sites should follow some basic content management principles. Call in a touch on the OCD side but consistently having a standard homepage is one of these for me.
Change the welcome page site property through Site Settings or PowerShell
Previously you could use the classic settings page (typically exposed by the publishing feature) or by browsing to /_layouts/15/AreaWelcomePage.aspx to make changes to the welcome page. This method no longer works and throws an error.
As with the make homepage action describe earlier this changes the default homepage to the use the page name you have provided and means the site won’t be available if users have bookmarked the site with the page name (/sitepages/home.aspx) in the URL.
What is my point? To this day can I still memory recall core settings pages. With these, you can quickly review or makes changes to settings pages rather than using the UI to navigate to them. This includes those that may no longer be exposed in the UI. Whilst my memory serves me well I don’t recommend this approach as these pages and settings are gradually being replaced with alternatives or removed by the SharePoint and Office 365 engineering team for a reason.
Instead, you can also use Pnp PowerShell to change the site welcome page property. I’ve provided an example script below.
As simple as my script is, it is the approach worth learning the most. I hope you find this article useful and as with all Pnp development effort. Sharing is caring!
You can download Microsoft Edge based on the Chromium engine from the Microsoft Edge Insider website. Keep an eye out for all the great stuff that is coming soon such as Internet Explorer mode, a Privacy Dashboard and much more.
What do we call the new version? Microsoft Edge. But for those having technical conversations or writing any guidance or documentation the difference will need to have a term to refer to the two very different versions. On Microsoft Docs, the documentation seems to refer to the original version as Edge (EdgeHTML) and the new version Edge (Chromium).
Oh, and with Edge (Chromium) not only am I now able to manage my bookmarks in more than a frustratingly annoying pop-out pane, but I can also consolidate them between the various browsers I have used!
Here at Microsoft, we use the Microsoft Demo Program to provision demo Office 365 environments. This service is available to Microsoft employees and Microsoft Partners.
Both can create up to six 90-day tenants, and Microsoft employees can create three additional 1-year tenants. The 90-day tenants sometimes expire sooner than 90-days, this is because they are pre-provisioned and sit in stockpiles ready for use for up to 45 days before the tenant is deleted and the stockpiles are automatically refreshed. Two types of virtual machines can be created. A standalone VM which isn’t associated with a tenant and a tenant-joined VM which gets domain-joined to a specified tenant. I don’t tend to find myself using VMs by Microsoft Demos as I tend to do this myself in my Azure subscription.
Tips on managing your Microsoft Demo environments
Firstly and most importantly I know it seems a hassle but demonstrate your environment with MFA enabled. It’s a piece of cake to enable MFA. We are and should already use it for our sign-ins, so in real terms, nothing is lost by enabling it and your environment is immediately securer as a result. Security absolutely should be at the forefront of any demonstration alongside our kick-ass product and feature stack.
Tip: You can set a personal PIN in your account profile when signed-in to Microsoft Demos. This is used in combination with another string to form a password.
Add reminders into your calendar a few weeks ahead of the expiry of your environment. This gives you a chance to escalate a renewal or allow you to tear down anything you have been working on that you might want to save and avoids unnecessary stress when you realise you need an expir(ing/ed) environment!
In each of my browser profiles, I include a standard set of Office 365 links. These are mainly to speed up my workflow, but it’s great to see all the shiny Office 365 icons on the bookmark bar too! Additionally, I also use folders with links to anything I am building or working on so I can quickly load them all as tabs (right click on the folder > open all on the folder). I toggle the visibility of the bookmark bar when presenting to customers and creating screenshots.
I tend to make all my profiles use the same configuration mainly for consistency, but some also increase productivity.
Home button – always enable the home button to speed up browsing.
I always add the English (United Kingdom) language for localised spelling.
Always show the bookmark bar (can quickly toggle it with Ctrl + B when taking screenshots or presenting to customers as needed).
Set the browser to continue where you left off on start-up.
In the non-chromium version of Edge (EdgeHTML) I was dependant on a few browser extensions which up until last week were prohibiting me from solely using Edge (Chromium) as they weren’t available. You can now allow extensions from other stores which has allowed me to install them and to ditch my other browsers altogether.
Grammarly – I know where my weaknesses are and have invested in Grammarly premium for a number a year or so. Grammarly helps me understand the mistakes in my writing and helps improve my spelling and grammar throughout my day.
1Password * – my password manager tool of choice.
AdBlock – blocks ads from all over the web.
Save to Pocket – useful for saving research for reading later. I use Pocket to my read it later tool of choice. I often read from my Pocket list when travelling and have time set aside each week to get on top of my reading list.
OneNote web clipper * similar to above but rather than reading the article later I clip it to my OneNote notebook for reference.
Here is my little bonus tip! I add a secret markdown readme file hosted in Gist provided by GitHub for each of my environments. The primary use for this is to provide a summary of the environment, the key personas like the admin account (note I don’t store passwords in this file) and to provide a basic changelog as you can easily forget significant changes in these environments that then catch you out later.
I decided to use a secret Gist rather than a OneNote page as the readme file is only ever used for read-access. Therefore, a secret Gist URL is just perfect for this and quick too! I also add this to the bookmark bar, so I quickly know what environment and profile I’m using. I then pin this tab, so it is always discretely open for quickly referencing.
Other useful tools for demos
Here are some other tools I use alongside these labs to help me with my task and demonstrations.
Clipboard manager – ClipX is a lightweight tool which I’ve used for years but now opt for Phrase Express for its additional Macro functionality.
Collection of sample files – basic folder comprising of sample files and Office documents. I also have a piece of sample malware file (EICAR test file) useful for demonstrating security capabilities in Office 365 such as Exchange Online Protection (EOP).
ZoomIT – a really useful tool to magnify parts of the screen when presenting but also useful for time management if you have an exercise or break.
Multiple desktops in Windows 10 – they’re great for keeping related apps and content together, for focus and for demonstrations where you can have various personas in each desktop and use a multi-finger swipe on the trackpad to slide between each desktop.
FastStone Capture – my screenshot tool of choice, it has advanced capture capabilities such as an object within a window such as a toolbar and can capture a long page with scrolling capture. It also has a simple yet powerful editor and can blur sections and add incremental annotations.
AirServer – this is an excellent tool for mirroring the display of mobile devices on your Windows desktop. The tool supports mirroring devices that use Airplay, Miracast and Google Cast.
One thing that doesn’t appear to be possible is that you can’t create a shortcut directly to a given profile. When launching Edge from a shortcut it will use the last profile Edge used. I’d rather it open a specific profile such as my default personal profile rather than the mythical demo personas I mostly use profiles for.
I hope you find the tips and tricks in this article useful.
A picture can tell a thousand words. That’s just what I wanted to achieve by placing my Raspberry Pi into a picture frame. This all started with a long trip to IKEA over the weekend. One of those trips where you get to the car and realise you have way too much to fit it all in the car. During this long trip, I spotted a thick picture frame. My mind jumped at the thought of placing a working Raspberry Pi within it. Well, this evening I decided to give it a try and went about trying to house a Raspberry Pi in the picture frame and succeeded.
I researched how others might have tackled this. My searches returned examples where people have made a digital picture frame as opposed to housing or framing a Raspberry Pi in a traditional picture frame. Bizarrely the one example I did find, Digital PI-cture Frame by David Park was from IKEA Hackers. Great minds! This, although some years old was what I had pictured in my head.
I love my tech and whilst I appreciate the clean, tidy and organised side of life. Sometimes I hate hiding things away too. This isn’t just any Raspberry Pi, this is one that is the hub of our home automation. One that should be out on display for everyone to see.
I was really torn whether I should house a Raspberry Pi 3b or a Raspberry Pi Zero within the picture frame. They are both absolutely beautiful and remarkable devices. In the end, I decided on the Raspberry Pi (RPi) 3b as it is such a significant device to our home. I may add another frame to house a RPi Zero for another project in a few months. For now, the frame currently sits on my desk but I plan to hang this on a significant wall in the house and make a feature of it including some internal lighting.
Mounting nuts/bolts – taken from a spare Raspberry Pi case
For those wanting to know what that other bit is that is included in the picture frame. It’s a RF transmitter (315MHz). This RPi runs OpenHab where I have some rules that trigger my projector blind to come down or go back up when using my Logitech Harmony remote. Personally, I think the picture frame looks better for having something alongside the RPi rather than having it sat there by itself. I’ll have some more posts on this topic very soon!
Well my Sonos Play:1 warranty is now void less than 24 hours after being delivered. This isn’t going to be one of those sexy extreme unboxing it instead of my personal experience in making my first Sonos speaker more portable and more accessible by powering it via USB. In short, I stripped apart a new Sonos Play:1 speaker and added the circuitry to power the unit using USB.
I love music and listening to a few stations on the radio. We have radios scattered throughout the house. This tends to result in me not listening to any of my music or playlists because of the convenience of having a radio in almost every room in the house. I’d say I listen to music or the radio far more than I watch TV. Sonos speakers have always been a ‘thing’ on my ‘for the house’ list and after experiencing them while visiting some friends recently (who highly recommended them mind) I decided to buy a Play:1 and give Sonos a try!
I’m now in love with Sonos speakers and question why it has taken me so long to buy one. They’re amazing!
The build quality is great (inside and out!) and more importantly the sound quality is superb (okay so maybe the bass is a bit overdriven on the Play:1 which causes excess bass driven vibrations at times). They kick the ass out of any of my other Bluetooth speakers. I will no doubt buy more Sonos speakers to have throughout the house but until then, I just have the one Play:1 to play with. Which is why I wanted more flexible to move this Sonos Play:1 around the house – from the study to the kitchen to the bathroom, garden and bedroom. This is the reason for this post.
I have plenty of sockets I could power the Sonos Play:1 from both inside the house and out, but I felt USB powered comments would give me the greatest flexibility to move it around. We even have those power outlets with USB included in them which this was another reason to add USB power. Plus I just love tearing things apart I guess.
Struggling with power with volume above 80%
So what gives, nothing other than volume at the top end. I have the same issue with the power consumption of the Play:1, if the volume is above 80% the unit requires more power than what can be supplied. This causes sound distortion and is demonstrated in one of the videos that inspired me to do this hack in the first place (Sonos PLAY:1 USB powered, how-to!!). Anything above 80% volume is really kicking it in the first place so I’m not troubled by this compromise.
The wireless performance of a portable Play:1 is really impressive. I moved it throughout the house and garden and I’ve yet to experience the Play:1 stop streaming due to connectivity issues. This in part is down to the quality of my home network but credit, where credit is due Sonos, has done a great job here. When I travel, I travel with my trusted MiFi device. It replicates my home SSID. This means any of my devices connect just like they would at home and don’t need any more config. I could, therefore, take my Sonos speaker with me when on the road, staying away or travelling, assuming you have an amazing data plan or a music library accessible by the Sonos speaker!
Hacking apart the Sonos Play:1
I won’t detail the specific steps involved, in part, I don’t want to be hit with the bill for replacement Sonos speakers. But also because I managed perfectly by watching two YouTube videos – Sonos PLAY:1 USB powered, how-to!! and Howto open Sonos PLAY:1 – Part 1. Happy for you to reach out to me for any questions or help if you’re trying this out yourself.
Basically, I took the Sonos Play:1 apart, carefully pulled the circuitry out. I then added a micro USB socket and step up converter that takes the 5.5V current from a USB input and increases it to 24V to power the Sonos speaker. The only thing I did differently from these videos was that I included the micro USB socket. This makes the cable detachable like most other devices. I intend to use the Play:1 in various locations and didn’t want to lose the figure eight mains power lead nor have a USB cable attached all the time. Win, win!
What I used to pull this off.
Micro USB PCB board (remember power out from a USB requires pin VCC to Positive and GND to GND)
Dremel used to drill and shape the hole used for the micro USB socket on both the speak enclosure and the speaker cage cover
Glue gun – the cables and terminals inside the Sonos Play:1 are very well insulated with what appears to be a PVA like glue gun insulation – I did similar with my soldering joints and used the glue gun to secure the step-up converter
A good set of Torx screwdrivers
A Jenga like a mind to work out the best place for the extra step up converter component and micro USB socket while still being able to put it all back together again
I completely get why you would have a Sonos in almost every room. Until a time when I do, this solution will suffice perfectly thank you. Once I am fully Sonos’ed in every room, my Portable Sonos Play:1 will live on with its dappy looking pull string bag.
With most of the house HUE’d up, I thought I would add Hue lighting under the cupboards in our kitchen. I love cooking but am often frustrated because of the poor lighting on the work surface in the kitchen. The trouble is the Philips Hue LED kit is only available in two sizes, the 2m main kit and in 1m extensions. Our kitchen cupboards are split in two by our cooker hob extractor. This leaves me with cupboard lengths of 1.4m and 1.6m. I did some research but could not find an extension lead for the Philips Hue light strips so rather than shedding out on two kits, I decided to hack together a solution to create my own extension lead.
Appreciating the risks and the potential cost of replacement involved if I failed, I took off and carefully hacked my own extension lead together. Below is a list of what you’ll need to do this yourself and the steps involved to make your own extension lead for your Hue light strips.
What you’ll need to hack your own Hue light strip extension lead together
Philips Hue Personal Wireless Lighting 2 m Lightstrip Plus
Philips Hue Personal Wireless Lighting 1 m Lightstrip Plus Extension
Wire cutters and a good wire stripper
Heat shrink to protect any exposed cables once we finish
Soldering iron and solder to join the extension lead wires onto the Philips Hue light strip
The desired length of cable (this will be your extension) – I couldn’t find a wire with six cores so used two five metre lengths of four core wire. Far less attractive but good enough for the hack this time around
Optional connector terminals and a crimp tool (male/female spade terminals) – these allowed me to pass the extension lead through backs of my cupboards more easily
Optional staple gun to tack the leads to the cupboards.
The steps involved…
Plan and test the placement of your light strip and where you will attach the extension lead.
Work out the route of your extension lead – in my case I went through the backs of the cupboards and then up and over the top of my extraction fan. This required a few holes to be drilled into the cupboards.
Prepare your extension lead. Strip and tin each of the wire with the soldering iron.
Decide if you will include a connector to allow you to separate the extension lead from the light strip. If you are going to add one, cut, strip and crimp the wires with your connector – in my case I used a set of spade terminals.
Grandad always said measure twice cut once – so run through your placement and cabling route once more.
And don’t be silly – remember to power off the light strip before the next step!
Cut the light strip at the nearest cut joint because this is where we will solder our extension lead wires onto.
Carefully cut back some of the outer plastic on the light strip so that you can solder your wires onto the terminals. Make sure you don’t forget to include some heat shrink to protect these joints once you have terminated the wires.
Test the lights work correctly before fitting in your desired place.
Tip! If placing under cupboards, place the light strip at the back for the best effect.
Optionally use a cable staple gun to tack the extension lead throughout its route to make it extra secure.
Grandad always said, measure twice cut once.
Product improvement idea
Philips could avoid this problem altogether and avoid any hacking at all. Firstly they should offer an official 6 core extension lead. Secondly, they could alter the cut joint they include at various points throughout the light strip. Making each cut joint made up of a male and female connector under the plastic. To extend the lightstrip you would then simply cut over the joint and use the official Philips Hue light strip extension lead. The extension lead would have a male and female connector at each end, allowing you to simply connect it to the section you have just cut.
That aside, kudos to the Philips team for creating amazing lights and for placing cut joints throughout the light strip. This made my hack so much easier to pull off.
I’m really impressed with the outcome of the Philips Hue LED light strips and my custom extension lead hack. I hope you find this article helpful and it inspires others to extend Hue light strips more easily. This post is part of my home automation series. If you liked this hack, be sure to check out some of my other home automation hacks.