Scott Hanselman

Review: Logitech MX keyboard and mouse - MX Keys and MX Master 3

April 28, '20 Comments [18] Posted in Reviews
Sponsored By

Logitech makes some beautiful keyboards and mice. Frankly, for me there's just Logitech and Microsoft in the keyboard and mouse game. I've never been a big fan of mechanical keyboards. I like a soft touch and a clear soft key throw.

I've gone back and forth between Microsoft classic keyboards like the Ergo 4000, but for Mice, I've been Team Logitech for YEARS. The MX Master Vertical is a fantastic product. Rock solid, long battery life, great vertical ergonomics, and USB-C to recharge batteries that last over two months. Lovely.

NOTE: Logitech recently give me their latest MX Master series - Keys, Palm Rest, and the 3rd gen MX Master 3 Mouse to review. As is with all the rare times a company sends products for review, I donate the gifted products to a local charter school. If I truly like the product, I will - and do - purchase the products directly with my own money.

Logitech MX Master Mouse

These are premium devices and they have a weight to them that was surprising. I don't mean weight like heavy, more like substantial. The keyboard is about 2 lbs which means it doesn't feel cheap and it'll stay put, but it's not an unruly weight.

The MX Master 3 mouse is 10 ounces and pushes smoothly. I have long ago standardized on the Wow!Pad Graphite Gaming Pad as it's cheap and lasts forever and the MX glides nicely on it with minimal friction. The scroll wheel - they call it magspeed - uses electromagnets and can switch between the clicky ratchet tactile scroll and a disturbingly smooth frictionless scroll. It's a click to switch between them. I like Ratchet for code and Smooth for long form reading. There's a center scroll and clever configurable thumb-scroller.

The mouse is multi-OS and supports Bluetooth, natch, but also the long time Logitech Universal Receiver standard. If you already have a Logitech receiver, adding a new device is trivial.

Logitech MX Master Series

Logitech MX Keys

Let me gush about this keyboard for a second. It's got substance. I don't like a cheap plasticky feel and the MX Keys has a solidity to it, a concreteness that you kinda have to feel to appreciate. It's nearly 2 lbs and I like that. This isn't a cheap keyboard and it doesn't feel cheap. I also expect a keyboard that costs $100 to last for YEARS. I feel this will.

I noticed that the "Windows Key" isn't a Windows key. This is a non-denominational keyboard that loves everyone and every OS. In fact, their Logitech Options (optional) software can even let you move from machine to machine in the same room, copy paste across operating systems, and move the mouse from screen to screen quite happily. So if you, like me, appreciate more than one operating system you'll also appreciate that little detail.

The MX keys basically assumes that you're a multi-computer office and has three dedicated keys to that fact. It, too, charges on USB-C quickly and easily and I just keep a cable around to top off the keyboard and mouse on the rare occasions they need the topping up.

As a touch typist I didn't think I'd care about illuminated keys but it's a lovely accenting touch adds something.

Logitech MX Keys

Frankly my only complaint is that this isn't an ergonomic or split keyboard. If they could just pop it into two pieces that would angle off to either side, it'd be the perfect keyboard. I added the palm rest but it doesn't attach to the keyboard, it is a secondary "along for the ride" floating accessory.

The keys have convex dips that feel nice and your fingers comfortably slip into them. The throw is shallow, more than a laptop, less than a Microsoft Ergo keyboard. The throw is similar to the Microsoft Surface keyboard line, but a bit crisper. They keys are soft and low-profile and sharp, never squishy.

Software

Logitech Options Software is clear and easy to use, unified across the product line and allows you to easily mix and match your new mouse with your old keyboard, or vice versa. Everything can be remapped and customized.

The optional Logitech Flow is similar to long time OSS options like Synergy but takes it to the next level with file-sharing. If you have two or three machines in your office that you regularly need to control (especially if you're mixing Windows and Mac) this may be the perfect keyboard+software solution for you.

Logitech Options Software

I'm very happy with this keyboard and mouse and I'm sold on the mouse already. I'm going to give it another month before I decide to purchase the keyboard. Both are excellent high-end products that you won't go wrong with. Again, the only caveat with the keyboard is that it's not ergo, but that's up to your taste.

The MX Mouse isn't vertical but it's extremely comfortable. If you prefer a right-handed ergo MX option, the MX Vertical Mouse is amazing and long ago replaced my Anker Vertical Mouse. In a word, Logitech's mice are unstoppable.


This week's blog sponsor: Couchbase gives developers the power of SQL with the flexibility of JSON. Start using it today for free with technologies including Kubernetes, Java, .NET, JavaScript, Go, and Python.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

CoreBoy is a cross platform GameBoy Emulator written in C# that even does ASCII

April 23, '20 Comments [11] Posted in DotNetCore | Gaming | Open Source
Sponsored By

.NET and C# are great languages for programming emulators. Specifically retrogaming and retroarcade emulators. In fact, there's a long history of emulators written in C#. Here's just a few.

Today, David Whitney is deep into writing CoreBoy, a GameBoy Emulator written in C# and .NET Core, using WinForms, and I also spy the Avalonia cross-platform open source WPF-like framework. Head over to https://github.com/davidwhitney/CoreBoy and give the gent a STAR. It even has a headless mode and you could use it as a Library in your own software. Who doesn't want a GameBoy library in their app?

I cloned and built it with http://dot.net Core in just a few minutes. Lovely. I enjoy a clean codebase. Assuming you have a backup of one of the many physical GameBoy games you own like me, you can load a binary dump in CoreBoy as a *.gb or *.gbc file and you'll get something this:

CoreBoy - Zelda Link's Awakening

image

Sweet! Sure it's a little buggy and slow but figuring these things out is the fun of it all! I love that David Whitney is taking us on this journey with him.

There's even already a MonoGame-based graphics surface using DesktopGL and "nilllzz" has it running on Ubuntu!

GameBoy Emulator in C# running on Ubuntu using MonoGame

Emulators are always fun projects to read and learn from. Here, David has a clear separation of concerns between the emulator (handling the CPU, loading instructions, etc.) and the graphics surface that is ultimately responsible for putting pixels on screen.

It looks like he hasn't got it working yet (some issues with command line parsing), but in a few minutes with a little hard-coding I was able to switch to ASCII mode with David's SillyAsciiArtCreator that takes a Pixel and RGB value and maps it to ASCII art that looks awesome in the Windows Terminal.

Zelda in a GameBoy Emulator as ASCII Art

Which is kind of awesome. Why would you do this? BECAUSE YOU CAN

Zelda in a GameBoy Emulator as ASCII Art

I look forward to seeing what comes of this cool new emulator and I'll be reading its code in more detail in the weeks to come! Great stuff, David!


Sponsor: Couchbase gives developers the power of SQL with the flexibility of JSON. Start using it today for free with technologies including Kubernetes, Java, .NET, JavaScript, Go, and Python.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

How to Remote Desktop (RDP) into a Windows 10 Azure AD joined machine

April 21, '20 Comments [14] Posted in Win10
Sponsored By

Since everyone started working remotely, I've personally needed to Remote Desktop into more computers lately than ever before. More this week than in the previous decade.

I wrote recently about to How to remote desktop fullscreen RDP with just SOME of your multiple monitors which is super useful if you have, say, 3 monitors, and you only want to use 2 and 3 for Remote Desktop and reserve #1 for your local machine, email, etc.

IMHO, the Remote Desktop Connection app is woefully old and kinda Windows XP-like in its style.

Remote Desktop Connection

There is a Windows Store Remote Desktop app at https://aka.ms/urdc and even a Remote Desktop Assistant at https://aka.ms/RDSetup that can help set up older machines (earlier than Windows 10 version 1709 (I had no idea this existed!)

The Windows Store version is nicer looking and more modern, but I can't figure out how to get it to Remote into an Azure Active Directory (AzureAD) joined computer. I don't see if it's even possible with the Windows Store app. Let me know if you know how!

Windows Desktop Store App

So, back to the old Remote Desktop Connection app. Turns out for whatever reason, you need to save the RDP file and open it in a text editor.

Add these two lines at the end (three if you want to save your username, then include the first line there)

username:s:.\AzureAD\YOURNAME@YOURDOMAIN.com
enablecredsspsupport:i:0
authentication level:i:2

Note that you have to use the style .\AzureAD\email@domain.com

The leading .\AzureAD\ is needed - that was the magic in front of my email for login. Then enablecredsspsupport along with authentication level 2 (settings that aren't exposed in the UI) was the final missing piece.

Add those two lines to the RDP text file and then open it with Remote Desktop Connection and you're set! Again, make sure you have the email prefix.

The Future?

Given that the client is smart enough to show an error from the remote machine that it's Azure AD enabled, IMHO this should Just Work.

More over, so should the Microsoft Store Remote Desktop client. It's beyond time for a refresh of these apps.

NOTE: Oddly there is another app called the Windows Desktop Client that does some of these things, but not others. It allows you to access machines your administrators have given you access to but doesn't allow you (a Dev or Prosumer) to connect to arbitrary machine. So it's not useful to me.
Windows Virtual Desktop

There needs to be one Ultimate Remote Windows Desktop Client that lets me connect to all flavors of Windows machines from anywhere, is smart about DPI and 4k monitors, remotes my audio optionally, and works for everything from AzureAD to old school Domains.

Between these three apps there's a Venn Diagram of functionality but there's nothing with the Union of them all. Yet.

Until then, I'm editing RDP files which is a bummer, but I'm unblocked, which is awesome.


Sponsor: Couchbase gives developers the power of SQL with the flexibility of JSON. Start using it today for free with technologies including Kubernetes, Java, .NET, JavaScript, Go, and Python.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Quarantine work is not Remote work

April 16, '20 Comments [24] Posted in Musings | Remote Work
Sponsored By

Empty streets by clindhartsen used under CCIt's hard. Now, to be clear, if you're working at all in these times, you're very fortunate. I am very fortunate to have a job that lets me work from home. Many of my coworkers, friends, and colleagues have been thrown into remote work - some in a frantic "get your laptop and you're now working from home" moment.

I have written a lot about Remote Work and done a number of podcasts on the topic. I've been working from my home now, full time, for 13 years. It's fair to say that I am an experienced Remote Worker if not an expert.

If you're new to Remote Work and you're feeling some kind of way, I want to say this as an expert in remote working - This thing we are doing now isn't remote work.

Quarantine work !== Remote work

Know that and absorb that and know that you're OK and this thing you're feeling - wow, Remote Works SUCKS! - is normal. You're not alone.

Just look at the replies to this tweet:

People are overwhelmed, afraid, and stressed. There's a background pressure - a psychic weight or stress - that is different in these times. This isn't a problem you can fix with a new webcam or a podcasting mic.

Working from home feels freeing and empowering. Working while quarantined is a luxurious prison.

I've got two kids at home suddenly, one who's had their last year before high school cut short and now we struggle as a couple to work our jobs AND educate the kids in an attempt to create some sense of normalcy and continuity. I applaud the single parents and folks trying to work outside the home AND take care of little ones in these times.

We also feel the guilt of working from home at all. We appreciate the front line workers (my wife is a nurse, my brother a firefighter) who don't have this luxury. The garbagemen and women, the grocery store stockers, truck drivers, food processors, and farmers. We do our best to be thankful for their work while still getting our own jobs done.

What's the point of this post? To remind you, the new remote worker, that this isn't normal. This isn't really representative of remote work. Hang in there, things will hopefully go back to some kind of normal and if we're lucky, perhaps you and I will be able to try out remote working and feel ok about it.

Here's some more resources. Be safe.


Sponsor: Have you tried developing in Rider yet? This fast and feature-rich cross-platform IDE improves your code for .NET, ASP.NET, .NET Core, Xamarin, and Unity applications on Windows, Mac, and Linux.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

The 2020 Guide to Creating Quality Technical Screencasts, Presentations, and Remote Meetings

April 14, '20 Comments [9] Posted in Musings
Sponsored By

Being effective when presenting remotelyI've had a lot of people ask me to write up a guide to creating great technical screencasts. This is an update to my 2011 post on the same topic.

What are you doing? STOP and reassert your assumptions

Hang on. You're doing a screencast or sharing your screen in some way for a meeting, presentation, or YouTube. What does that mean and why did I suggest you stop.

This isn't a stage presentation or even a talk in a conference room. Screencasts and remote meetings have an intimacy to them. You're in someone's ear, in their headphones, you're 18 inches from their face. Consider how you want to be seen, how you want to be heard, and what is on your screen.

Try to apply a level of intentionality and deliberate practice. I'm not saying to micromanage, but I am saying don't just "share your screen." Put your empathy hat on and consider your audience and how it'll look and feel for them.

Initial setup and tools

You can use any number of tools for screen capture. They are largely the same. My preferred tool is Camtasia. Other valid tools are CamStudio (a free and open source tool) and Expression Encoder Screen Capture. You can also use OBS to record your screen and webcam.

When you're using Skype/Zoom/Teams to record live, you're already set as those tools will share for you as well as record.

Windows Look and Feel

At the risk of sounding uptight, how you setup Windows and your environment is the difference between a professional and an amateurish screencast. It's shocking how many folks will start recording a screencast without changing a thing, then wonder why their 1600x1200 screencast looks bad on YouTube at 360p or low bandwidth on a phone. If you find yourself doing screencasts a lot, considering making a custom user (maybe named Screencast?) on your machine with these settings already applied. That way you can login as Screencast and your settings will stick.

Resolution and Aspect

First, decide on your aspect ratio. Your laptop may have a ratio of width to height that is 3:2 or 4:3 but MOST people have a 16:9 Widescreen system? A VERY safe resolution in 2020 is 1280x720 (also known as 720p). That means that you'll be visible on everything from a low-end Android, any tablet, up to a desktop.

That said, statistics show that many folks now have 1920x1080 (1080p) capable systems. But again, consider your audience. If I was presenting to a rural school district, I'd use 720 or a lower resolution. It will be smoother and use less bandwidth and you'll never have issue with things being too small. If I was presenting in a professional environment I'd use 1080p. I don't present at 4k, especially if the audience is overseas from where I am. You're pushing millions of pixels that aren't needed, slowing your message and adding no additional value.

On Windows, consider your scale factor. At 1080p, 125% DPI is reasonable. At 720p (or 1366x768, using 100% scaling is reasonable).

Background Wallpaper and Icons

Choose a standard looking background photo. I prefer to use one from http://unsplash.com or the defaults that come with Windows 10 or your Mac. Avoid complex backgrounds as they don't compress well during encoding. Avoid using pictures of your kids or family unless it feeds your spirit and you don't mind mixing the professional and personal. Again - be intentional. I am neither for nor against - just be conscious and decide. Don't just accept the defaults.

Hide your desktop icons. Right click your desktop and hit View | Show Desktop Items. Also consider whether we need to see your desktop at all. If it doesn’t add value, don’t show it on the screencast.

Fonts

Try to use standard fonts and themes. While your preferred font and colors/themes offer personality, they can be distracting. Consider the message you want to present.

If you're using Visual Studio or Visual Studio Code, remember that your audience likely hasn't changed their defaults, and if you show them something fancy, they'll be thinking about how they get that fancy widget rather than your content. In Visual Studio proper, go to Tools | Options | Environment | Fonts and Colors and click "Use Defaults."

In all your text editors, consider change your fonts to Consolas Size 15. It may seem counter-intuitive to have such large fonts but in fact this will make your code viewable even on an iPhone or Tablet. 

Remember, most video sites, including YouTube, restrict the embedded video player size to a maximum of around 560p height, unless you go full-screen or use a pop-out. Use the font size recommended here, and use Camtasia’s zoom and highlight features during editing to call out key bits of code.

Don’t highlight code in the editor by selecting it with the mouse UNLESS you've deliberately change the selection background color. Defaults are typically hard to read editor selections in video. Instead, zoom and highlight in post production, or use ZoomIt and practice zooming and emphasizing on screen elements.

Browser Setup

Unless your screencast is about using different browsers, pick a browser and stick to it. Hide your toolbars, clear your cache, history, and your autocomplete history. You'd be surprised how many inappropriate sites and autocomplete suggestions are published on the web forever and not noticed until it's too late. Don't view pr0n on your screencast machine. Be aware.

Toolbars

Your browser shouldn't show any, and this is a good time to uninstall or hide whatever coupon-offering nonsense or McAffee pixel waster that you've stopped being able to see after all these years. Remember, default is the word of the day. Disable any Browser Extensions that aren't adding value.

If you are using Visual Studio or an IDE (Eclipse, Photoshop, etc) be aware of your toolbars. If you have made extensive customizations to your toolbars and you use them in the screencast, you are doing a great disservice to your audience. Put things to the default. If you use hotkeys, tell the audience, and use them for a reason.

Toast

You've got mail! Yay. Yes, but not during your screencast. Turn off Outlook Gmail, GChat, Twitter, Messenger, Skype, and anything else that can "pop toast" during your screencast.

Clock and Notifications

Go to Start on Windows 10, and search for System Icons and turn off the Clock temporarily. Why? You can't easily edit a screencast if there's a convenient time code in the corner that jumps around during your edits. Also, no one needs to know you're doing your work at 3am.

Clean out your taskbar and notification area. Anything that visually distracts, or just hide the taskbar.

Audio and Voice

Use a decent microphone. I use a Samson C01U. You can also use a USB headset-style microphone but be aware that breathing and "cotton mouth" really shows up on these. Test it! Listen to yourself! Try moving the microphone above your nose so you aren't exhaling onto it directly. Use a pop filter to help eliminate 'plosives (p's and t's). You can get them cheap at a music store.

Be aware of your keyboard clicks. Some folks feel strongly about whether or not your keyboard can be heard during a screencast. Ultimately it's your choice, but you have to be aware of it first, then make a conscious decision. Don't just let whatever happens happen. Think about your keyboard sound, your typing style and your microphone, and listen to it a few times and see if you like how it comes together.

Avoid prolonged silence. There should be ebb and flow of "I'm saying this, I'm doing that" but not 10 seconds of "watch my mouse." Speak in an upbeat but authentic tone. Be real.

Also be calm and quiet. Remember you are a foot from them and you're their ear. It's a conversation with a friend, not a presentation to thousands (even if it is).

Don’t apologize or make excuses for mistakes – either work them in as something to learn from, or remove them completely.

If you are editing the presentation - If you make a mistake when speaking or demonstrating, clap your hands or cough loudly into the mic and wait a second before starting that portion over. When editing, the mistakes will show up as loud audio spikes, making it easy to find them.

Camtasia has decent automatic noise reduction. Use it. You’ll be surprised how much background noise your room has that you, but not your audience, will easily tune out.

If you must overdub a portion of the audio, sit in the same position you did while recording the original, and have the mic in the same spot. You want your voice to blend in seamlessly.

Preferred Video Output for Prerecords

Your screen capture tool should be produced at the highest reasonable quality as it will be compressed later when it's uploaded. Think of it like producing JPEGs. You can make a 5 megabyte JPG, but often a 500k one will do. You can make a 10 gig screen capture if you use uncompressed AVI encoding, but often a high bit rate MP4 will do.

The trick is to remember that your compressed screencast will be recompressed (copies of copies) when it is run through the encoding process.

Edit your screencast, if you do, in its recorded native resolution which hopefully is what you'll publish to as well. That means, record at 1080p, edit at 1080p, and publish at 1080p. Let YouTube or your final destination do the squishing to smaller resolutions.

Personally, I like to know what's going on in my production process so I always select things like "Custom production settings" in Camtasia rather than presets. Ultimately you'll need to try and find what works for you. Use an H.264 encoder with a high bitrate for the video and 44.1kHz/441000Hz 16 bit mono for the audio. Basically make a decently sized MP4 and it should work everywhere.

Do you have enough bandwidth?

In my opinion, if you are doing a live call with Video and Screensharing and you want it to be high definition, you'll need 4 Mbps upstream from your connection. You can check this at http://speedtest.net. If you have 5-6 Mbps you've got a little more headroom. However, if someone in the house decides to get on Netflix, you could have an issue. Know your bandwidth limitations ahead of time. If it's an important stream, can you dedicate your bandwidth to just your one machine? Check out QoS (quality of service) on your router, or better yet, take your kids' iPads away! ;)

Conclusion

Take some time. I put about an hour of work into a 15 min screencast. Your mileage may vary. Watch your video! Listen to it, and have your friends listen to it. Does it look smooth? Sound smooth? Is it viewable on a small device AND a big screen? Does it FEEL good?


Sponsor: Have you tried developing in Rider yet? This fast and feature-rich cross-platform IDE improves your code for .NET, ASP.NET, .NET Core, Xamarin, and Unity applications on Windows, Mac, and Linux.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.