1

Announcing the PowerShell Productivity Tools module

 3 years ago
source link: https://www.powershell.no/productivity/2017/08/24/introducing-psproductivitytools.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

In this article, we are going to introduce a new PowerShell module called PSProductivityTools.

alt

Time management

alt

Time management is something most people is having to face every day. At work, we try to be as productive as possible. However, it may not be easy due to many distractions during a work day.
Many books are written on this topic, and several techniques exists for trying to put your available time into a system. The Pomodoro technique is one of the more popular time management techniques. It is a great way to eliminate distractions, such as phone notifications, e-mail, questions from collegues and so on. In a nutshell, the technique uses a timer to put bulks of work into several sprints - typically lasting for 25 minutes.

A while back, MVP Ståle Hansen wrote a PowerShell script for starting a Pomodoro sprint using PowerShell as the timer. In addition to starting a timer, he also invoked additional actions such as enabling presentation mode to avoid notifications to pop-up on the computer.
A few years ago I wrote a PowerShell function for publishing Skype for Business (formerly Lync) availability using a PowerShell function. Ståle incorporated this into his script as well. After talking together about how useful the Start-Pomodoro function is, we decided to create a PowerShell module hosted on GitHub and published to the PowerShell Gallery in order to make it easier for the community to install, use and contribute.

Introducing the PowerShell Productivity Tools module

The module is published to the PowerShell Gallery, which means you can install it using the following command from the PowerShellGet module:

Install-Module -Name PSProductivityTools

If you do not have the option to leverage the PowerShellGet module, manual installation instructions as well as information about requirements is available in the GitHub repository for the module.

The initial version of the module contains the following functions:

  • Start-Pomodoro - Initiates a new Pomodoro sprint and supports several actions such as configuring availability in Skype for Business, enable presentation mode, start music and trigger custom tasks using IFTT such as muting/unmuting a mobile device.
  • Publish-SfBContactInformation - Publish-SfBContactInformation is a PowerShell function to configure a set of availability settings in the Skype for Business client.

Here is some examples on how to leverage the Start-Pomodoro function:

# Initiates a new Pomodoro sprint, defaulting to 25 minutes duration. Start-Pomodoro

# Initiates a new Pomodoro sprint with 10 minutes duration. A random audio-file will be started from the specified audio file path Start-Pomodoro -Minutes 10 -AudioFilePath ~\Music\MusicToCodeByCollection -StartMusic

# Initiates a new Pomodoro sprint. A mobile device can be muted when starting the sprint and unmuting when the sprint is finished by using IFTT webhooks. Start-Pomodoro -IFTTMuteTrigger start_pomodoro -IFTTUnMuteTrigger stop_pomodoro -IFTTWebhookKey abcdef

# In order to avoid having to specify a lot of parameters (we want to be productive, right?), a tip is to specify static information by using default parameter values (available in PowerShell 3.0 and later). Open your PowerShell profile (psedit $profile) and use the following syntax: $MusicToCodeByCollectionPath = Join-Path -Path $env:USERPROFILE -ChildPath Music\MusicToCodeByCollection

if (Test-Path -Path $MusicToCodeByCollectionPath) {

$PSDefaultParameterValues.Add('Start-Pomodoro:AudioFilePath', $MusicToCodeByCollectionPath)

}

$PSDefaultParameterValues.Add('Start-Pomodoro:IFTTUnMuteTrigger', 'pomodoro_stop') $PSDefaultParameterValues.Add('Start-Pomodoro:IFTTMuteTrigger', 'pomodoro_start') $PSDefaultParameterValues.Add('Start-Pomodoro:IFTTWebhookKey', 'abscdef')

For additional information, I would recommend to read Ståle`s article Set yourself unavailable with this open source PowerShell based Pomodoro timer.

Any other suggestions are also welcome, feel free to submit an issue on the GitHub repository.

Productivity devices

In addition to the Start-Pomodoro PowerShell function, a few physical tools can be of great help as well.

My first recommendation is to get a good headset with noice cancellation capabilities. I recently bought the Sennheiser MB 660 UC MS Wireless Headset, which I highly recommend:

alt

Another device I recently bought and is quite happy with after a couple weeks of usage is Blynclight - a “busy light” which indicates with colors what your availability state is based on your Skype for Business status:

alt

Summary

In this article we have looked at the PowerShell Productivity Tools module - which contains commands for productivity tools & topics such as time management. Going forward we would like to both expand the functionality of the existing commands as well as add new productivity related ones. If you have an idea, we would love to hear it even if you do not plan to implement it yourself.
Hopefully, the PowerShell Productivity Tools module can help you be more productive during busy work days.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK