Category Archives: sw

Ridiculous Twitch, or how I went 2FA with Auhty

Today, my Twitch login process was one of the most ridiculous web interactions ever! As usual, Twitch sees every new browser session (cookies cleaned, no memory of the previous visited sites) as a “new device” and forces the user to provide a 6-digit code, to complement the user-password challenge. Unfortunately, those 6-digits came via email, and sloooowly, with a latency of minutes between the code request and the arrival of the corresponding email message. Maybe due to this latency, every time I entered the correct code, Twitch reacted as if I was writing the wrong number. Very frustrating.

At some stage, I finally succeeded and took the opportunity to change my Twitch security settings:

I decided to enable two-factor authentication (2FA), which means a second authentication challenge, after the user-password. First, I provided a phone-number, which indeed got associated with the account, but future logins will require not a SMS sent to the phone number, but a code generated by the “Authy” app, Twillio’s ( equivalent to “Google Authenticator”.

When I first started using 2FA, SMS seemed the best option: I controlled the number, it required no extra app, so it was simpler, and that was – and is – something of great importance!
Unfortunately, as many are bound to find, sooner rather than later, SMS is now considerably insecure and more prone to failure than using time-sensitive security apps. The top reason SMS has failed me in the past, was phone-network operator restrictions, temporary phone-network traffic issues, and/or other reasons strictly under the phone-network operator control: there were situations when I needed a SMS in 30 seconds, and it would never arrive that promptly. That was the day when I quit SMS for app-based 2FA. The data comes from an operator agnostic network – the Internet.

Nowadays, SMS should be a second choice, relatively to Authy and equivalents, not only because of not depending on one specific phone-operator network, but also because the system is more vulnerable, with increasingly more documented SIM-card hijacking events.

twitch_02_code_correct_but_not_accepted_02_768.jpg (image/jpeg)


twitch_03_code_correct_and_accepted_768.jpg (image/jpeg)


twitch_04_2fa_about_to_be_enabled_768.jpg (image/jpeg)


twitch_05_2fa_on_768.jpg (image/jpeg)


Technical Details

Microsoft Teams – an UNPLEASANT experience

Due to professional matters, I am now sometimes required to remotely meet with others, using “Microsoft Teams”. Having had previous experience of other synchronous communication tools, namely Discord and Zoom, I expected (1) a similar setup process, and (2) a similar “collaboration experience”.

Regarding (1), the setup, I expected that it would be a matter of downloading some installer, creating a product related account, and logging-in. It was not that smooth, but close.

I am on Windows 7, feeling no need to update to Windows 10, and not using Office365. Still, “Teams” provided an OK installer, with all the necessary files – not one of those “mini installers” that will later require further downloading. Get it at:

In my view, “mini installers” are nothing but a barrier to one’s end, so it was a good start. But there are annoyances: the user is given no option regarding where the files are to be installed. In Windows 7, “Teams” installs to:

C:\users\<you user name >\appdata\local\microsoft\teams\

And, at least three files will require Internet access, without previous warning:

C:\users\<your user name>\appdata\local\microsoft\teams\update.exe
C:\users\<your user name>\appdata\local\microsoft\teams\current\teams.exe
C:\users\<your user name>\appdata\local\microsoft\teams\current\squirrel.exe

Notice that Squirrel is an open source project, which is great to see, and highly contrasts with Microsoft’s closed attitude regarding most of its own products. It also uses the NuGet package manager and exhibits some reported security weaknesses. Check

Software security is a subjective topic: you can have the most insecure piece of code, and nothing bad will ever happen to your digital assets, if, for example, you isolate it in such a fashion that it cannot communicate with other software and/or access relevant data. For that, you could use some sandbox approach and/or a firmly closed firewall and network infrastructure.
On the other hand, you can have a supposedly “secure”, no issues known, software, and relax on the data/network/firewall environment protection, ending up in a situation that is as dangerous, if not more. It is the “unknown unknowns” that often cause the most serious problems.

After the installation concluded, it was only a matter of minutes for creating firewall rules, before “Microsoft Teams” was ready to launch.

The next step – account creation – was, and is, confusing to me: to use “Teams”, one must have an account, but what exact type account it must be, is a mystery. It seems to depend on intended usage and even invitation source. If one arrives to “Teams” with an invitation to meet with an organization running a full featured Office 365 subscription, then the account requirements might different from those creating an account on his/her own. In fact, if a user answers that he/she will be using “Teams” to meet with “friends and family”, the installer aborts and suggests “Skype”!
At one point, I was creating a “Microsoft account”, redirected from a previous account login. When reentering the login data, I was told that my password’s length was “too long” – I then understood that entirely new credentials were being created. I now have multiple accounts, some work for gaming, some work for mail, some work for Microsoft Teams, only. I am confused, but that is probably just me.

When the software finally accepted the account, and displayed the correct “team” with whom I was to collaborate with, I thought that was the end of all barriers and we could start working together. Naive.

Regarding (2), the “collaboration experience”, I took the following notes.

I usually record all my sessions. When using “Zoom” ( it is easy to understand what one is doing and it simply works: one can choose to record to the cloud, or to a local storage path. No cloud for me.
Similarly, I expected “Microsoft Teams” to allow the user to choose where to record the session, either via settings, or upon ending a recording. There is no such option in settings, so I started recording, only to discovery that every stream is automatically uploaded to:
where it will remain available to, at least, everyone in the hosting organization, not private to the creator, or even private to the team that was running the meeting! This is quite surprising.

This recording behavior was not obvious to me and, I assume, to many others. From what I could perceive, people interpret “Microsoft Teams” recordings, as private digital assets, for their exclusive consumption. As previously stated, it is not like that: the recordings automatically become available to all the members in the hosting organization. I dared browsing some of the streams available in my context, and I wonder if some of them are not accidental: people might not be aware of their publication, because the software is opaque by design and does not make it explicit the properties and privacy level of such recordings.
It was also a pain to delete my own accidental video: not trivial at all. I had to Google how to do it and did not take note of the procedure – it would have been useful right now, to complement this post.

One visual annoyance is the lack of control “Microsoft Teams” gives the user, regarding adjustments to the audio and video devices used during the meeting. For example, if light conditions change and one wants to make the camera image brighter or darker, there is no in-software control for that.
Unfortunately, the same goes for all other synchronous collaboration tools I have used, and what was different in “Teams”, in my particular case, relatively to other solutions, was the “zoom” level of the camera. I was using a webcam with a very wide lens and “Teams” locked it, on the widest possible view angle, unveiling more than what I intended of my surroundings. The zoom level on other software is set above the widest angle; here, it is set at the widest value, with no control available to tune it. All I can say is that, regarding video, all these synchronous collaboration tools could take a lesson from the free and open source software “webcamoid”, which gives the user full control over all the exposed device settings.

It seems that others have already complained, to no avail:

One final disturbing design option is the “invite” system. People who participate in a meeting have to be “invited”, yet the invite comes from Microsoft ( Microsoft Teams ), not from the meeting “creator” him/herself. To me, this is a “NO GO”. This is control hijacking. Avoid.

If I were to choose, I would not pick “Microsoft Teams” as a collaboration solution over any of the others I have experience with. Microsoft centralizes all the process, from the invitations, to the session recording, with no alternatives given. This is not polite: it steals users crucial freedom and control.

In a single paragraph: Microsoft Teams is opaque by-design, frustrating to use, inferior in the relevant features to the known alternatives, and hijacks the teams’ freedom, centralizing invitations and recordings.

If you can NOT play remote audio, locally, via RDP, using Firefox

I connect to many different computers, using Microsoft’s “Remote Desktop”, using “RDP” (Remote Desktop Protocol). It is not common for me to need to play, locally, the audio from the remote computer, but sometimes I do.
Today, I successfully played, locally, remote audio using the Chrome web browser. Unfortunately, when I tried to do the same using Firefox, I only got silence.

The solution:

  1. In Firefox’s address bat, enter “about:config”
  2. Accept that you understand the “risks” of configuring Firefox
  3. Change the value of the security.sandbox.content.level setting to 2 (in my case it was set to 5
  4. Restart Firefox

My favorite MP3TAG scripts

I use the free (as in “libre”) “mp3tag” software for tagging my music.
I was having a hard time with the file names of certain tracks with many artists and/or with too long album names, so I had to figure the internal scripting mechanisms of the software, for adequate file naming, from the music-embedded tags.

Fortunately, this open source tool provides good and succinct documentation for the task, available @

What follows, are my favorite naming strings. You enter them from the “Convert” menu, “Tag – Filename” option.

If you want to make sure that an album’s name is never longer than 32 characters, use this code for the album’s name part:


If you want to make sure that an artist’s name is never longer than 24 characters, use this code for the artist’s name part:

In case of multiple artists for a single track, if you want to take only the first artist name, assuming the tags separate the names with commas, use:

$if($eql($strchr(%artist%,’,’),0),%artist%,$left(%artist%, $sub($strchr(%artist%,’,’),1))))

For the track numbering, if you want to force a specific number of digits, say 2, use this:


Now, combining all the above, here are the full scripts I actually use.
For the format “first artist name – album name no longer than 32 chars – track number with 3 digits”:

$if($eql($strchr(%artist%,','),0),%artist%,$left(%artist%, $sub($strchr(%artist%,','),1))) - $if($geql($len(%album%),32),$left(%album%,32),%album%) - $num(%track%,3)

For the format “artist name up to 24 chars – album name no longer than 32 chars – track number with 3 digits”:

$if($geql($len(%artist%),24),$left(%artist%,24),%artist%) - $if($geql($len(%album%),32),$left(%album%,32),%album%) - $num(%track%,3)

For the format “album name up to 32 chars – first artist name – track number with 3 digits”:

$if($geql($len(%album%),32),$left(%album%,32),%album%) - $if($eql($strchr(%artist%,','),0),%artist%,$left(%artist%, $sub($strchr(%artist%,','),1)))) - $num(%track%,3)

It may be helpful.

URLs "p1" 20190801 – 69 VHQ resources

I am an avid WWW surfer, with hundreds of websites visited each month, sometimes daily. I bookmark them all, at least for logging purposes. These posts having the "urls" category, capture what was on my browser on a specific date. I hope you enjoy some of these shared resources.

Bye Janetter, Hello TweetDuck!

For years and years, Janetter ( was my window to Twitter. Instead of using Twitter via a Web browser, or via apps for mobile devices, I used Twitter via Janetter, for Windows 7 desktop PCs. It worked great: it presented me a continuous stream of tweets, as tweeted by those I am following, without issues, without ads, without distracting discussion threads, allowing its user to consume what was being produced, without interferences.

At some stage in history, there was a good collection of clients for Twitter, for Windows 7 desktop PCs (Janetter alternatives); I used all of the following:

  • MetroTwit
  • Seesmic/
  • TweetDeck
  • DestroyTwitter
  • SharedMinds Desktop

Janetter remained my favorite, for different reasons. These days none of the alternatives mentioned exist, with the exception of TweetDeck, which is more of a subscription service to manage your social presence, and not exactly a plain Twitter consumer, so it does not count.
I remember that TweetDeck (in its early days, when it was mostly a Twitter client), Seesmic, MetroTwit and DestroyTwitter, were not as efficient in managing screen space, wasting panes and pixels in “good looks”, that could not present as many and as readable tweets, as Janetter did. SharedMinds got close to Janetter, but still did not win my preference.

Roughly, two years ago, Twitter made significant changes in the way other software can access Twitter users’ data, and interact with the social network via its official API. Those changes were a death sentence for nearly all the existing Windows desktop Twitter clients. Users, who had already authorized apps, could keep using them – I kept using Janetter -, but new users were not possible.

Since Janetter satisfied me, I never felt the true impact of that Twitter change: my client kept working fine.

This went on, until this Monday, 2019-07-29, when Janetter suddenly died with the sentence: “cannot connect to Twitter”. I tweeted about it:

In a matter of hours, it became clear that Janetter, at least for PC, was gone. Something either on Janetter’s network or on its interface to Twitter had been plugged-off. It was time to find an alternative.

I was very pessimistic: I assumed there would be nothing working the way I like. My first searches for alternatives intensified that suspicion: pointers and pointers to software that no longer works, that is no longer supported, and/or that is not available for Windows 7 desktop.
With the same ease that I feared the worse (which would be to use Twitter via a Web browser), I found the wonderful “TweetDuck”!

TweetDuck is a perfect Janetter alternative, with the advantage of handling embedded media better; it is also superior in communicating expanded URLs to the browser.

Therefore, a new era begins for my Twitter consumption, now using TweetDuck!

One final note: Google fails miserably in searching for “download TweetDuck”, guiding you to aggregator sites.

Here is the URL of the official site for TweetDuck:

This is open source software, with source at GitHub:

How to create shortcuts to CLSIDs in Windows

If you want to access certain windows features, for example the “Tablet PC Settings” more directly and even if/when you are not using a Tablet PC, calling the correspondent Shell CLSID will do the job:


But what if you want a desktop shortcut for it? The shortcut creator will not recognize such literal addresses.

The solution is to prefix with the Windows Explorer executable:

explorer shell:::{80F3F1D5-FECA-45F3-BC32-752C152E456E}

Here are some shortcuts which might come handy:

Action Center     {BB64F8A7-BEE7-4E1A-AB8D-7D8273F7FDB6}
Add Features     {BE122A0E-4503-11DA-8BDE-F66BAD1E3F3A}
Add Network Location     {D4480A50-BA28-11d1-8E75-00C04FA31A86}
Administrative Tools     {D20EA4E1-3957-11d2-A40B-0C5020524153}
Advanced User Accounts (netplwiz)     {7A9D77BD-5403-11d2-8785-2E0420524153}
Applications     {4234d49b-0245-4df3-b780-3893943456e1}
AutoPlay     {9C60DE1E-E5FC-40f4-A487-460851A8D915}
Biometric Devices (Windows 8 only)     {0142e4d0-fb7a-11dc-ba4a-000ffe7ab428}
BitLocker Drive Encryption     {D9EF8727-CAC2-4e60-809E-86F80A666C91}
Bluetooth Devices     {28803F59-3A75-4058-995F-4EE5503B023C}
Briefcase     {85BBD920-42AO-1069-A2E4-08002B30309D}
Color Management     {B2C761C6-29BC-4f19-9251-E6195265BAF1}
Command Folder     {437ff9c0-a07f-4fa0-af80-84b6c6440a16}
Common Places FS Folder     {d34a6ca6-62c2-4c34-8a7c-14709c1ad938}
Computer (This PC)     {20d04fe0-3aea-1069-a2d8-08002b30309d}
Connect To     {38A98528-6CBF-4CA9-8DC0-B1E1D10F7B1B}
Control Panel     {5399E694-6CE5-4D6C-8FCE-1D8870FDCBA0}
Control Panel (All Settings)     {F90C627B-7280-45DB-BC26-CCE7BDD620A4}
Control Panel (All Tasks)     {ED7BA470-8E54-465E-825C-99712043E01C}
Control Panel (Category view)     {26EE0668-A00A-44D7-9371-BEB064C98683}
Control Panel (Icons view)     {21EC2020-3AEA-1069-A2DD-08002B30309D}
Credential Manager     {1206F5F1-0569-412C-8FEC-3204630DFB70}
Date and Time     {E2E7934B-DCE5-43C4-9576-7FE4F75E7480}
Default Programs     {17cd9488-1228-4b2f-88ce-4298e93e0966} or
delegate folder that appears in Computer     {b155bdf8-02f0-451e-9a26-ae317cfd7779}
Desktop folder     {B4BFCC3A-DB2C-424C-B029-7FE99A87C641}
Device Manager     {74246bfc-4c96-11d0-abef-0020af6b0b7a}
Devices and Printers     {A8A91A66-3A7D-4424-8D24-04E180695C7A}
Display     {C555438B-3C23-4769-A71F-B6D3D9B6053A}
Documents folder     {A8CDFF1C-4878-43be-B5FD-F8091C1C60D0}
Downloads folder     {20D04FE0-3AEA-1069-A2D8-08002B30309D}::{374DE290-123F-4565-9164-39C4925E467B}
Ease of Access Center     {D555645E-D4F8-4c29-A827-D93C859C4F2A}
E-mail (default program)     {2559a1f5-21d7-11d4-bdaf-00c04f60b9f0}
Family Safety     {96AE8D84-A250-4520-95A5-A47A7E3C548B}
Favorites     {323CA680-C24D-4099-B94D-446DD2D7249E}
File History     {F6B6E965-E9B2-444B-9286-10C9152EDBC5}
Folder Options     {6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}
Font Settings     {93412589-74D4-4E4E-AD0E-E0CB621440FD}
Fonts     {BD84B380-8CA2-1069-AB1D-08000948534}
Games Explorer     {ED228FDF-9EA8-4870-83b1-96b02CFE0D52}
Get Programs     {15eae92e-f17a-4431-9f28-805e482dafd4}
Help and Support     {2559a1f1-21d7-11d4-bdaf-00c04f60b9f0}
HomeGroup     {6785BFAC-9D2D-4be5-B7E2-59937E8FB80A} or
{67CA7650-96E6-4FDD-BB43-A8E774F73A57} or
Hyper-V Remote File Browsing     {0907616E-F5E6-48D8-9D61-A91C3D28106D}
Indexing Options     {87D66A43-7B11-4A28-9811-C86EE395ACF7}
Infared     {A0275511-0E86-4ECA-97C2-ECD8F1221D08}
Installed Updates     {d450a8a1-9568-45c7-9c0e-b4f9fb4537bd}
Internet Explorer (default browser)     {871C5380-42A0-1069-A2EA-08002B30309D}
Internet Options     {A3DD4F92-658A-410F-84FD-6FBBBEF2FFFE}
Keyboard Properties     {725BE8F7-668E-4C7B-8F90-46BDB0936430}
Language Settings     {BF782CC9-5A52-4A17-806C-2A894FFEEAC5}
Libraries     {031E4825-7B94-4dc3-B131-E946B44C8DD5}
Location Sensors     {E9950154-C418-419e-A90A-20C5287AE24B}
Media Servers     {289AF617-1CC3-42A6-926C-E6A863F0E3BA}
Mobility Center     {5ea4f148-308c-46d7-98a9-49041b1dd468}
Mouse Properties     {6C8EEC18-8D75-41B2-A177-8831D59D2D50}
Music folder     {1CF1260C-4DD0-4ebb-811F-33C572699FDE}
Network     {F02C1A0D-BE21-4350-88B0-7367FC96EF3C}
Network and Sharing Center     8E908FC9-BECC-40f6-915B-F4CA0E70D03D}
Network Connections     {7007ACC7-3202-11D1-AAD2-00805FC1270E} or
Networks Flyout (Connect To)     {38A98528-6CBF-4CA9-8DC0-B1E1D10F7B1B}
Network (WorkGroup)     {208D2C60-3AEA-1069-A2D7-08002B30309D}
Notification Area Icons     {05d7b0f4-2121-4eff-bf6b-ed3f69b894d9}
NVIDIA Control Panel (if installed)     {0bbca823-e77d-419e-9a44-5adec2c8eeb0}
Offline Files Folder     {AFDB1F70-2A4C-11d2-9039-00C04F8EEB3E}
Pen and Touch     {F82DF8F7-8B9F-442E-A48C-818EA735FF9B}
Performance Information and Tools (WEI)     {78F3955E-3B90-4184-BD14-5397C15F1EFC}
Personalization     {ED834ED6-4B5A-4bfe-8F11-A626DCB6A921}
Phone & Modem “Location Information”     {40419485-C444-4567-851A-2DD7BFA1684D}
Pictures folder     {3ADD1653-EB32-4cb0-BBD7-DFA0ABB5ACCA}
Portable Devices     {35786D3C-B075-49b9-88DD-029876E11C01}
Power Options     {025A5937-A6BE-4686-A844-36FE4BEC8B6D}
Previous Versions Results Folder     {f8c2ab3b-17bc-41da-9758-339d7dbf2d88}
printhood delegate folder     {ed50fc29-b964-48a9-afb3-15ebb9b97f36}
Printers     {2227A280-3AEA-1069-A2DE-08002B30309D} or
Programs and Features     {7b81be6a-ce2b-4676-a29e-eb907a5126c5}
Programs Folder     {7be9d83c-a729-4d97-b5a7-1b7313c39e0a}
Programs Folder and Fast Items     {865e5e76-ad83-4dca-a109-50dc2113ce9a}
Public Folder     {4336a54d-038b-4685-ab02-99bb52d3fb8b}
Recent Places     {22877a6d-37a1-461a-91b0-dbda5aaebc99}
Recovery     {9FE63AFD-59CF-4419-9775-ABCC3849F861}
Recycle Bin     {645FF040-5081-101B-9F08-00AA002F954E}
Region and Language     {62d8ed13-c9d0-4ce8-a914-47dd628fb1b0}
RemoteApp and Desktop Connections     {241D7C96-F8BF-4F85-B01F-E2B043341A4B}
Removable Storage Devices     {a6482830-08eb-41e2-84c1-73920c2badb9}
Results Folder     {2965e715-eb66-4719-b53f-1672673bbefa}
Run     {2559a1f3-21d7-11d4-bdaf-00c04f60b9f0}
Search Apps     {2559a1f8-21d7-11d4-bdaf-00c04f60b9f0}
Search Files     {2559a1f0-21d7-11d4-bdaf-00c04f60b9f0}
Search Results     {9343812e-1c37-4a49-a12e-4b2d810d956b}
Set Program Access and Defaults     {2559a1f7-21d7-11d4-bdaf-00c04f60b9f0}
Show Desktop     {3080F90D-D7AD-11D9-BD98-0000947B0257}
SkyDrive folder (Windows 8.1)     {8E74D236-7F35-4720-B138-1FED0B85EA75}
Sound     {F2DDFC82-8F12-4CDD-B7DC-D4FE1425AA4D}
Speech Recognition     {58E3C745-D971-4081-9034-86E34B30836A}
Storage Spaces     {F942C606-0914-47AB-BE56-1321B8035096}
Switch Between Windows     {3080F90E-D7AD-11D9-BD98-0000947B0257}
Sync Center     {9C73F5E5-7AE7-4E32-A8E8-8D23B85255BF}
Sync Setup Folder     {2E9E59C0-B437-4981-A647-9C34B9B90891}
System     {BB06C0E4-D293-4f75-8A90-CB05B6477EEE}
System Icons     {05d7b0f4-2121-4eff-bf6b-ed3f69b894d9} SystemIcons
Tablet PC Settings     {80F3F1D5-FECA-45F3-BC32-752C152E456E}
Taskbar Properties     {0DF44EAA-FF21-4412-828E-260A8728E7F1}
Text to Speech     {D17D1D6D-CC3F-4815-8FE3-607E7D5D10B3}
This PC (Computer)     {20d04fe0-3aea-1069-a2d8-08002b30309d}
Troubleshooting     {C58C4893-3BE0-4B45-ABB5-A63E4B8C8651}
User Accounts     {60632754-c523-4b62-b45c-4172da012619}
User Folder     {59031a47-3f72-44a7-89c5-5595fe6b30ee}
User Pinned     {1f3427c8-5c10-4210-aa03-2ee45287d668}
Videos folder     {A0953C92-50DC-43bf-BE83-3742FED03C9C}
Window Switcher (Flip-2D)     {3080F90E-D7AD-11D9-BD98-0000947B0257}
Windows Defender     {D8559EB9-20C0-410E-BEDA-7ED416AECC2A}
Windows Features     {67718415-c450-4f3c-bf8a-b487642dc39b}
Windows 7 File Recovery     {B98A2BEA-7D42-4558-8BD1-832F41BAC6FD}
Windows Firewall     {4026492F-2F69-46B8-B9BF-5654FC07E423}
Windows Mobility Center     {5ea4f148-308c-46d7-98a9-49041b1dd468}
Windows SideShow (Windows 8 only)     {E95A4861-D57A-4be1-AD0F-35267E261739}
Windows To Go     {8E0C279D-0BD1-43C3-9EBD-31C3DC5B8A77}
Windows Update     {36eef7db-88ad-4e81-ad49-0e313f0c35f8}
Work Folders (Windows 8.1)     {ECDB0924-4208-451E-8EE0-373C0956DE16}