Make things that are “linkable”

Similar to my recent post about “share early and share often” I also encourage others that are creating things (documents, videos, blog posts, digital artwork, etc.) to make them “linkable”. Let me describe what I mean and why it is important.

If you create a document for a new project specification and then store it on the desktop of your computer, how would you go about sharing that document to a coworker?

You could email / FTP / etc. the full file, but now when you make changes how do they get those changes? Instead, if you share the document to a cloud storage location and then send them a link, now they have access to the latest version.

In a similar way, when I have an idea that I want to share with others (like this post) I’m putting it in a location (Yammer, my blog, cloud storage, etc.) that I can easily link to and share with others. Same goes for tips and tricks videos that I’ve posted to TikTok.

Conclusion

By making things I create “linkable”, now the next time a topic comes up in conversation, I can quickly grab the link and share with others.

How are you making things you create “linkable”?

(PS, how many links did you count in this post…?)

-Frog Out

How I Use Stream Deck

In this post I’ll walk through the configurations I currently use with my Stream Deck 15 key.

Stream Deck home screen example

(Last updated 2022-03-14)

Background

For those of you who are not familiar, the Elegato Stream Deck is a device that helps automate keyboard shortcuts as well as offer integrations with many popular content creation platforms or streaming services (ex. OBS, YouTube, Twitch, XSplit, and more). Currently it is available in 6 key, 15 key, and 32 key combinations. Each of the keys is a mini LCD screen that you can customize with text, images, or even dynamic content through developer extensibility. On top of that you can nest folders within folders for additional use cases.

My Configuration

My “homescreen” is split up into the following folders (with sub-actions) and actions.

  • Folders
    • Time zones
      • (5 different time zones corresponding to various teams that I work with regularly)
    • Recording
      • OBS Studio
      • Clipchamp
      • Descript
      • Carnac (app to show keystrokes on screen)
      • Scene switcher for OBS Studio (3x)
      • TikTok
      • File Explorer launch to folder for editing videos
      • Record (start / stop)
    • Community call admin
      • (various hotkeys and launchers related to community calls I co-host)
    • Media
      • Spotify
      • Windows Weekly (locally downloaded episodes)
      • Player.fm (podcatcher app)
      • Xbox Cloud Gaming
      • Goodreads
      • Play / pause control
      • Mute / unmute control
    • OneNote
      • (links to various OneNote notebooks I use through my week)
    • Text snippets
      • (multiple text snippets that I use on a regular basis)
    • Microsoft Teams
      • (keyboard shortcuts to control Microsoft Teams meetings / presentations / etc.)
      • Sysinternals ZoomIt (draw on screen, zoom screen, timer, and more)
  • Home screen actions
    • Microsoft stock ticker (custom app)
    • Dice Roller (for fun)
    • Elegato Key Light controls (on / off, brightness +/-)

Plugins

I primarily use out of the box (or installed by default) actions, but there are a few useful plugins that I do use (all from the same developer BarRaider. You can search for these and more in the Stream Deck Store as part of the configuration app.

  • Plugins
    • Advanced Launcher (BarRaider)
      • Launch Microsoft Store apps and additional customizations for launching processes
    • Games (BarRaider)
    • Stock Ticker (BarRaider)
    • World Time (BarRaider)

Extra tips

Launch browser profiles

For many years I have been using browser profiles in Microsoft Edge, Google Chrome, and Firefox. Each implements them slightly differently, but the general idea is that you can have different “profiles” for different personas. This includes a separate instance of saved credentials, home pages, favorites, and more. I use these extensively to test out Microsoft 365 sandbox tenants as various users, personal vs. work profiles for myself, and more.

Thankfully my friend Paul Schaeflein already blogged about launching browser sessions with different profiles. Read more on his post How I use Stream Deck – Browser Profiles.

Conclusion

In this post I overviewed the general configuration I use with my 15 key Stream Deck. I I’ve only been using my Stream Deck for a few months, but hopefully this post gives you a few insights into what / how you can use your own. Depending on future configuration changes I will update this post for major updates.

-Frog Out

Weekly Tips and Experimenting with New Mediums

For the past ~9 months, I have been posting a weekly #PSAforTheDay tip or trick. These have spanned a number of areas including developer productivity, Windows / Office, Windows Subsystem for Linux (WSL), PowerShell, presentation tips, remote work, and more. Here are a few things I’ve learned since I started.

  • Format
    • I originally posted all tips on Twitter as static images with simple edits using Paint.Net.
    • Then I moved to creating short GIFs with software called LICEcap for added animation.
    • Next I started recording short-form videos (1-3 mins) with narrated audio using OBS Studio and edited in Video Editor (Win 10/11 native app). Videos are posted to TikTok (and sharing out on Twitter and LinkedIn).
    • Currently, I am creating <1 min videos and doing post-processing in ClipChamp (edit clips, add visual effects, and add 1st layer of titles or callout text) and also Descript (convert audio to text and add captions).
  • Timing
    • Tips are recorded and published on Thursdays.
    • My goal from the beginning has been to keep the entire process per tip produced under 10 mins. With the addition of adding captions (increased accessibility among other reasons) it now takes closer to 20 mins, but I think that is an acceptable reason to budget more time.
  • Benefits
    • On a weekly or monthly basis, a co-worker will see something I do or ask about something that I have a tip for. Having a quick and sharable tweet / video makes it easy to show them (and for them to share with others).
    • Adding captions to videos (efficiently) was something I always wanted to learn how to do. Picking up skills like this has been personally gratifying and now I can re-use that on numerous opportunities in the future.
  • Challenges
    • Now that I have 9 months of weekly tips, it is getting more difficult to find a specific tip and send them a link to the tweet / video. I’m considering a simple page on my blog with an index / search box for the tips.
    • Embedding videos into Twitter and LinkedIn can be problematic, especially when the video comes from an external service like TikTok. I’m still trying to figure out the right approach here.
  • Tools

Take a look at all #PSAforTheDay tips and tricks:

PSAforTheDay posts on Twitter

BrianTJackett videos on TikTok

Installing Windows Packages with winget

In this post I’ll tell you about the Windows Package Manager and winget tool (currently in preview) for installing Windows packages. Feel free to use my sample script as a starting point for downloading useful tools and applications for Windows.

Background

Last week my primary laptop (~4 months old) ran into some issues and I attempted a restore from a weekly backup taken just a few days before. Unfortunately the restore put the machine into an unusable state (a sign that I won’t be using that backup software any longer). After a re-install of Windows I was once again put to the task of re-installing dozens of applications. I have gone through this process many times before, but this time around I thought it would be good to test out the new Windows Package Manager and winget tool.

Solution

Disclaimer: At time of writing, Windows Package Manager and the winget  tool are in public preview and may be substantially modified before they are generally available. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Use the winget tool to install and manage applications
https://docs.microsoft.com/en-us/windows/package-manager/winget

The first step is to install the winget tool. There are a few options for installation and I chose to download from the releases from the winget repository.

Once installed you can run commands for search, show, install and more. I tested a few installations interactively but once I got the hang of it I scripted out a list of commonly used tools and applications that I use on almost all of my machines. Below is my script that you are free to copy and adapt as you see fit. I have chosen PowerShell to run the script but that is not a requirement.

Note: If you do not see the below Gist please refer to code at this location: PS-WinGet_Apps_To_Install.ps1

winget install Microsoft.dotnet
winget install Microsoft.PowerShell
winget install Microsoft.WindowsTerminal
winget install Postman.Postman
winget install Notepad++.Notepad++
winget install Telerik.Fiddler
winget install Microsoft.VisualStudioCode
winget install Microsoft.VisualStudio.Enterprise
winget install Microsoft.Powertoys
winget install microsoft.mousewithoutborder
winget install OBSProject.OBSStudio
winget install VideoLAN.VLC
winget install LINQPad.LINQPad
winget install WinDirStat.WinDirStat
winget install Microsoft.AzureCLI
winget install Microsoft.AzureStorageEmulator
winget install Microsoft.AzureStorageExplorer
winget install Microsoft.AzureFunctionsCoreTools
winget install Microsoft.EdgeDev
winget install Microsoft.Teams
winget install GitHub.cli

Do read the note (link) in documentation about scripting winget. If an installer launches a new process that can lead to starting the next installation before the previous completes. This may result in unexpected issues or failed installations.

Conclusion

I found winget to be very helpful in re-installing a dozen or more applications on my refreshed laptop. The next time you need to install (or re-install) an application I would encourage you to check for it with the Windows Packager Manager and winget tool. Happy installing!

-Frog Out

How To Print QR Code Stickers

 

As Registration Chairperson for Stir Trek Conference, this year I was in charge with coming up with a way to print QR code stickers for 2,100+ attendees.  The QR codes would contain name and email address for a registered attendee so that sponsors could have a quicker / easier way to capture contact information for giveaway prizes or sending follow up communications.  Since we care about attendee privacy we also planned for “opt-out” stickers that could cover over the QR code stickers if attendees chose.  In this post I’ll walk through the highlights of how we designed, created, and printed the QR codes stickers.

QRCodeSample.jpg

Designing QR Codes

Before starting this project I was familiar with QR codes, but I never knew the amount of data (or what type) could be encoded in a QR code.  Even more interesting (at least to me) is the science behind how to size the QR code relative to the distance at which the QR code will be scanned.  The following article is from 2011 but gives some insight into scaling the number of characters encoded with the scanning distance.

QR Code minimum size

https://blog.qrstuff.com/2011/11/23/qr-code-minimum-size

QR Code Minimum Size
Modules Characters Scan Distance
150mm (6″) 300mm (12″) 450mm (18″)
25 26 15mm (0.6″) 30mm (1.2″) 46mm (1.8″)
30 49 18mm (0.7″) 36mm (1.4″) 55mm (2.1″)
35 72 21mm (0.8″) 42mm (1.7″) 64mm (2.5″)
40 98 24mm (0.9″) 48mm (1.9″) 73mm (2.9″)
45 125 27mm (1.1″) 54mm (2.1″) 82mm (3.2″)
50 163 30mm (1.2″) 60mm (2.4″) 91mm (3.6″)
55 203 33mm (1.3″) 66mm (2.6″) 100mm (3.9″)
60 249 36mm (1.4″) 72mm (2.8″) 109mm (4.3″)
65 298 39mm (1.5″) 78mm (3.1″) 118mm (4.7″)
70 351 42mm (1.7″) 84mm (3.3″) 127mm (5.0″)
75 407 45mm (1.8″) 90mm (3.5″) 137mm (5.4″)
80 468 48mm (1.9″) 96mm (3.8″) 146mm (5.7″)
85 534 51mm (2.0″) 102mm (4.0″) 155mm (6.1″)
90 601 54mm (2.1″) 108mm (4.3″) 164mm (6.4″)
95 669 57mm (2.2″) 114mm (4.5″) 173mm (6.8″)
100 739 60mm (2.4″) 120mm (4.7″) 182mm (7.2″)

We needed to encode attendee first name, last name, and email address.  After analyzing our registration data the longest combination of those fields was under 125 characters so we could safely scan a 1″ x 1″ sticker from 6″ away.  Since the QR code stickers are put on the attendee badge, the smaller the sticker size the better so that we didn’t take up too much space (or cover the great artwork from Nate Lovett and badge design from Carey Payette).

Label Stickers

Since the stickers needed to be 1″ x 1″ I purchased 100 sheets (80 per sheet / 8,000 total) of the following label stickers for less than $20 USD.  This allowed for many sample prints to ensure images and other information was lined up on the stickers for the final product.

OL5425 – 1″ x 1″ One Inch Square Labels

https://www.onlinelabels.com/OL5425.htm?src=dlc-353

Label template

The stickers came with free downloadable Microsoft Word template for the exact dimensions and layout needed.  One wrinkle to the plan was that our shipping vendor (great folks at Markt custom apparel) would be applying the stickers to the badges as they packed attendee boxes.  As such we needed to print not only the QR code but also a “verification” sticker with attendee name and registration ID number to ensure the right QR code went to the right box.  More on that later using Word’s mail merge to accomplish that challenge.

Generating QR Codes

My primary laptop runs Windows 10 and I was able to find an app in the Microsoft Store called “QR-Code Generator Pro”.  There is a QR code bulk creation functionality in the paid “pro” version.  I exported our registration data (name + email address) from Eventbrite to a suitable CSV format that this app could then encode.

QR-Code Generator Pro

https://www.microsoft.com/en-us/p/qr-code-generator-pro/9nqzgs8wzlh2

Importing QR Codes

For many years I’ve “known” about mail merge but I had honestly never used it for more than 5 mins at a time.  Working with 2,100+ attendees made mail merge a necessity for the scale and complexity of what I needed.  I found the following online article that walks through creating the placeholders in the mail merge template and then linking fields from attendee registration spreadsheet to those placeholders.

2 Ways to Batch Insert Multiple Pictures into Your Word Document via Mail Merge

https://www.datanumen.com/blogs/2-ways-batch-insert-multiple-pictures-word-document-via-mail-merge/

This took much longer than expected due to the sometimes one-way changes that were applied which required starting over from scratch.  I settled on a template that I can now re-use in future years by simply importing the newest attendee data spreadsheet and applying the mail merge.  As mentioned previously needing to print not only the QR code but also attendee verification data meant that the “next record” tag had to appear on every other label in the template.

Printing QR Codes

Printing the QR codes on the label stickers took a number of sample runs before I got them working properly.  At first the QR codes printed slightly off center.  Attempting to adjust the margins on the QR code images proved unsuccessful.  In the future I may look at increasing the (pixel) size of the generated QR codes to compensate for the printing issue.

Conclusion

Overall I’m very happy with the final results and the fact that this is a fairly automated and reusable process.  As always we’ll continue to tweak and refine the process to continue delivering the best we can for our attendees.  If this overview helped save you time, effort, etc. please let me know in the comments or share back improvements.

 

-Frog Out

Windows Equivalent of Linux or Unix “Touch” Command

In Linux and Unix there is a “touch” command which will update the timestamp of a file without modifying the contents.  You can also create an empty file without having to open an application among other actions.  In Windows there isn’t a direct equivalent, but you can get close by using the “copy” command with a “+” at the end of the filename while specifying no destination file.  The + symbol points the copy operation back to the source file.  This will update the timestamp while not modifying the contents of the file.

Ex.

copy SampleFile.txt+

WindowsEquivTouch1

WindowsEquivTouch2

This process was helpful for my customer testing out automated CI/CD processes with Azure DevOps and Git.  Hopefully this will be useful to someone else.  Enjoy.

 

-Frog Out