Category Archives: sw

Converting M4B to MP3 and splitting MP3 files

As I was getting some audio-books ready for listening on the road, using an old car-stereo system, I quickly found out that M4B files would not work, while MP3 content would be recognized, up to 320 kbps.

In order to convert M4B to MP3, the superb free and open source ffmpeg software, as expected, did the job at first attempt, with zero surprises: as with the vast majority of situations, all it was required was to explicitly state input and output files. I also was explicit regarding the audio coded (acodec) to be “libmp3lame”.

Here is the the full command-line (CLI) command I used:

ffmpeg -i audiobook.m4b -acodec libmp3lame audiobook.mp3

Some documentation here:
https://trac.ffmpeg.org/wiki/Encode/MP3

But another problem was on the cards: this old car stereo only recognizes FAT32 USB devices and sometimes forgets where in the MP3 file a listener stops listening. This can be very inconvenient: if the player loses tracks of where to resume, then it resumes at the absolute file start. Moreover, the MP3 player only provides file-based navigation, which means one can only go to next/previous file/track, but can NOT browse inside a specific file/track.

This, of course, is unacceptable for long MP3 audio-books, so I had to find a way to split a big original MP3 file in smaller partials, that would be browsable without much frustration, should a player memory glitch happen.

For the splitting, I used another free and open source tool: “MP3SPLT”.
More about it, here:
http://mp3splt.sourceforge.net/mp3splt_page/home.php

Here is the the full command-line (CLI) command I used to organize the book in 5 minutes chapters:

mp3splt.exe audiobook.mp3 -t 5.0

That was it, everything is ready for the road.

My yearly Outlook pattern, short version

“Outlook”, Microsoft’s email client from their “Office Suite” software, is still an important tool, for me. Despite the existence of strong alternatives, namely Mozilla’s Thunderbird, I have hacked my way around Outlook – the 2016 version, to be exact. I use it strictly as an email client, no calendar, no tasks, zero cloud integrations. It has not been trivial: some modern security features are not available; for example, to connect to Gmail accounts, one has to force “allow less secure access” on Google’s side.

For me, it is fundamental to steer away from the poisoned convenience of web mail solutions: I say no to all WWW-based email interface systems. This includes Microsoft’s own “Outlook” cloud mail and Google’s Gmail. Slowly, but surely, such systems diminish the user’s email autonomy: if one loses internet access, or wants to programmatically search decade+ old messages, one comes to an halt, if the approach is totally cloud-dependent and no local offline backups exist.

“Outlook” stores its messages in “.PST” files. What follows is my usage pattern. If you decide to try it, before proceeding, make sure you know how to configure “Outlook”, namely that you are capable of setting a custom “default data file” store for all the messages. You must also have comfort with .PST files and know their location; then, browse to the location of the *.PST files; close “Outlook”, and create a backup of all existing *.PST files.

Here is what I do:

  • keep one .PST file per year; in my case, every .PST file grows to around ~10 GB before getting retired;
  • name the default .PST file something year neutral; for example “current_year.pst”;
  • when the year ends, close “Outlook”, rename “current_year.pst” to an adequate name for the year that gets “retired”, such as “2021.pst”;
  • relaunch “Outlook”; the software will NOT find the “retired” default destination PST data file and will ask to create a new one, with a name and location of your choice. Keep the name configured as the default destination data file (e.g. “current_year.pst”) and keep all the *.PST data files in the same folder.
  • with “Outlook” running, go to File > account settings > account settings > “data files” tab > “add” button, and browse to the “2021.pst” file, to make it available.

That is it – the new year messages will be arriving to the same, previously configured data file (now empty), without breaking any rules set, or any email account’s settings. The past year messsages are all still available in the just added .PST data file. Easy organization. Offline email. Ready for another year.

The extreme disrespect Microsoft has for its users

It is almost unreal that after all these years, on the verge of 2022, Microsoft, with its nearly unlimited material resources, keeps its Windows 10 Edge browser stealing file associations against the user’s explicit and repeatedly assumed options, regarding default apps.

I am so annoyed to have to change my PDF viewer option to my favorite software for the task, nearly every single day, that I had to write it out. For me, Microsoft Edge is “irritation software”, a non-tool, an app that serves no other true purpose than to upload its users’ data to the Microsoft cloud. There is nothing in the Edge software that users can not find in alternatives, some genuinely transparent, obeying, and open source, namely in Mozilla’s Firefox, including the support for vertical tabs which – for me – is a must, and is lacking in most Web browsers. It is just horrible.

Some users are to blame. For the convenience of not having to redo their preferences, they stick and comply to Edge’s clepto dictatorship.

This is one of several annoyances in Windows 10, probably the most frequent, but NOT the most time-consuming one. The problem that has burned me the most time is the “no Internet connection available” FALSE connectivity information.

This problem can arise in a multitude of situations, but the odds of it happening are higher in systems with more than one NIC (Network Interface Card) and/or when users run their own DNS server. In these scenarios, the ridiculous service “Network Location Awareness” (NLA) might fail to properly process what is set in Windows’ registry at

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet

There, Microsoft sets some callback URLs, which are regularly contacted (keys “ActiveDnsProbeContent”, “ActiveDnsProbeContentV6”), resolved via specific DNS hosts (keys “ActiveDnsProbeHost”, “ActiveDnsProbeHostV6”), and expected to regularly answer certain data (set in keys “ActiveWebProbeContent” and “ActiveWebProbeContentV6”).
This is a miserable, absurdly bad design option, disconnected from other network configurations.

If a NIC is set to a “private” network, that uses its own custom DNS resolver – as in my case – the NLA service might consider that the entire system is without Internet connection, even if other NICs do have access. Or, at least, that is what is always happening with me. It is oh so frustrating.

To aggravate the ridiculousness, if one searches for solutions, the top results tend to be Microsoft’s own “answers” sites, which answer absolutely nothing. Those Microsoft forums consist of threads that read as nightmares. People respond with mechanically scripted texts that go around most problems’ essence.
Search engines are at blame here too, for ranking such garbage sites so high.

Having to systematically fix the same problems, again and again, is an offense to productivity. It simply should not happen.
For users to think this is a justifiable behavior from a company the size of Microsoft to let these situations go on, for 10+ years now, sets an incredible low, extremely negative standard, to everyone else. “Oh time and data are so precious, but let us push people to waste them, just because we can and it is nice to milk their corresponding data”.

Shame on you Microsoft. It should not be as it is. You are doing many things wrong.

youtube-dl – an absurd, sad situation

What follows is my briefest introduction to “copyright”, as I limitedly understand it, followed by my personal thoughts on yesterday’s RIIA initiated DMCA takedown of the project “youtube-dl” from github.com.

The full request for the takedown of “youtube-dl”, and many of its forks, is at
https://github.com/github/dmca/blob/master/2020/10/2020-10-23-RIAA.md

Intro
“Copyright”, from an economic perspective, is a set of monopolies given to creators, to incentivize “creation”. The rational for these incentives is that creation is hard, failure-prone, and copying is relatively trivial.
However, if these monopolies were excessive, for example lasting “forever”, then creators, their heirs, or to whom the rights/monopolies were sold, would constitute a permanent bottleneck between the creation and the opportunity for society, as a whole, to benefit from it, with unrestricted freedom. Thus, the monopolies are time-limited – they have an expiration date.

There are also exceptions in the law. In the USA, “fair use” is the chapter to read, to understand exceptions. For example, showing a copyrighted video to a class of students, in an educational context, will likely be valid.
In Europe, exceptions are similar – international treaties signed by most countries have “harmonized” national copyright systems -, but include explicitly enunciated use-cases, that bypass the chance of litigation and will not require a judge to interpret particular situations as “fair use” or not, namely some learning acts at public libraries.

The creator alone has the exclusive rights to decide who/what can be done with the creation; if/how it can be modified, and if/how it can be distributed. Societies, in the so-called “Knowledge Economy” we are living in, will mostly progress fueled by better knowledge, so creators are the professionals that modern societies need and “Copyright” law must keep evolving to keep the proper balance between the creators’ rewards and the societal benefits.

The “DMCA” (Digital Millennium Copyright Act) is one of the many changes that Copyright law incorporated, in the USA. However, it is an ugly one, because until year 2000 clean reverse engineering practices would probably be legit, and since then, if for bypassing certain TPMs (Technology Protection Measures) that can “compromise” the creator, they might not be.

My thoughts
Clean reverse engineering practices usually are extraordinary innovations and should not be barred. The perverse effect of making certain TPM-defeating processes illegal, even when identified cleanly, with absolutely no access to the source intellectual property, is that the knowledge of the available bypasses will rest in the hands of the very few who do manage to find them. The chance for improvement is lost and asymmetries intensify, with solutions only available to few, definitely not available to the entire community, leaving most under the false believe that the current fruition model is the single possible one. This has fueled “bug bounty” programs, thus contributing to alternative reward systems.

These are very hard topics to discuss lightly, and this post sure is light. But, right now, I find it very negative, wrong on many levels – economical and intellectual -, damaging for all in the long-run, and intensely disrespectful for the thinkers, writers and coders involved, that RIIA is attacking years of hard labored source code developed by a community of intellectuals.

The “youtube-dl” source code has probably done nothing more than to promote the exact same artists that, allegedly, are being hurt by it. This is truly unfair. Have common sense! Some of the referenced artists themselves should take a good look at the mirror and try to assess if these tools are taking food out of their tables – what they are indirectly doing, is taking the creation pleasure out of the lives of innocents, who just enjoy creating software. Have some decency. Live and love, and let live and love.

I also tweeted about this:
https://twitter.com/my_dot_com/

Solution to the "Google Arts and Culture" app "tap to refresh" issue

Google has done more for the world, than any other company I can think of. It is easy to blame “big tech” companies for all that is wrong – and as I write, there is a very visible protest against Facebook – but the truth is that “humans are only humans”. We will always find ways to misuse contents and technology in general, refuse to take the blame, and then ask others for solutions.

This constantly happens, at very different scales. Parents, religious groups, organizations of different shapes and forms, blame what they think is “wrong” with their kids, affiliates, members, etc., on the music they listen, the movies they watch, the books they read, the apps they use; the people they communicate with, the news they (do not) read, etc.
The opportunity to, alternatively, take a good introspective look at the mirror, is rarely taken. It is easier to find scapegoats.

These companies and ad agencies that, today, are taking the hypocritical path against Facebook, will do it to Google, to your company, or to yourself (!) tomorrow. They are oversimplifying extremely complex social questions and, with that, doing more harm than good. Our world is not trivial. Isolated hashtag reactions are some of what is wrong in human behavior. It is required to go beyond the hashtag.

This post is about one of the many wonderful products and services that Google offers. It is not about “search”, “Gmail”, “Classroom”, “Maps”, “Earth”, “Android”, etc., but about something less known, yet equally relevant and loveable: the “Google Arts and Culture” app.
Of course, with the current trends, it is only a matter of time before one of these wonderful offerings to become under negative scrutiny, either because someone will find horrible things when searching, have sensitive data compromised, or encounter “indecent art”.

So, enjoy the “Arts” app while you can, if you can. I could NOT, until understanding and fixing the “tap to refresh” issue. This issue consists in a blank screen telling you to “tap to refresh”, to no avail.

The “Google Arts and Culture” app, is a wonderful effort, to help people learn about, and connect with arts and culture. In many countries, it will be localized enough, to be based on the local arts/culture. Unfortunately, in my case, the app did not work at all: it would launch, display a “tap to refresh” message, and systematically fail on every attempt to continue.

I investigated enough of the app behavior, to understand that the failure was because of the unavailability of certain network resources:
(1)
I had my filtering proxy configured to ignore http(s) requests matching the pattern

*.ggpht.com

, which in the past served me well, to block certain image-based ads. If I want to use the app, as it is, I must unblock that pattern.
(2)
A second network resource that must be unblocked, for the app to work, is the domain

google-analytics.com

. In my case, I had configured my private DNS to translate requests matching

*.google-analytics.*

to 0.0.0.0, not to the real IP address. Again, that served me well, for many years, not only against ads, but mostly against a plethora of user-behavior tracking techniques. In this case, I am disappointed of having to unblock google-analytics. In the future, I will research for a different solution.

Doing (1) and (2) enables the app “Google Arts and Culture” to function.



google_arts_and_culture_00_permissions_768.jpg
https://arturmarques.com/wp/wp-content/uploads/2020/07/google_arts_and_culture_00_permissions_768.jpg (image/jpeg)

google_arts_and_culture_00_permissions_768.jpg


google_arts_and_culture_app_03_running_768.jpg
https://arturmarques.com/wp/wp-content/uploads/2020/07/google_arts_and_culture_app_03_running_768.jpg (image/jpeg)

google_arts_and_culture_app_03_running_768.jpg


google_arts_and_culture_app_02_tap_to_refresh_768.jpg
https://arturmarques.com/wp/wp-content/uploads/2020/07/google_arts_and_culture_app_02_tap_to_refresh_768.jpg (image/jpeg)

google_arts_and_culture_app_02_tap_to_refresh_768.jpg

Technical Details
  • ./ups/2020-07/05/ARTURMARQUES_DOT_COM_WP_AMAM/google_arts_and_culture_00_permissions_768.jpg
    • attachment_id : 1079
    • date_created_gmt : 2020-07-05 18:06:02
    • parent : 0
    • link : https://arturmarques.com/wp/wp-content/uploads/2020/07/google_arts_and_culture_00_permissions_768.jpg
    • title : google_arts_and_culture_00_permissions_768.jpg
    • caption :
    • description :
    • metadata :
      • width : 809
      • height : 1045
      • file : 2020/07/google_arts_and_culture_00_permissions_768.jpg
      • sizes :
        • medium :
          • file : google_arts_and_culture_00_permissions_768-232×300.jpg
          • width : 232
          • height : 300
          • mime-type : image/jpeg
        • large :
          • file : google_arts_and_culture_00_permissions_768-793×1024.jpg
          • width : 793
          • height : 1024
          • mime-type : image/jpeg
        • thumbnail :
          • file : google_arts_and_culture_00_permissions_768-150×150.jpg
          • width : 150
          • height : 150
          • mime-type : image/jpeg
        • medium_large :
          • file : google_arts_and_culture_00_permissions_768-768×992.jpg
          • width : 768
          • height : 992
          • mime-type : image/jpeg
        • post-thumbnail :
          • file : google_arts_and_culture_00_permissions_768-672×372.jpg
          • width : 672
          • height : 372
          • mime-type : image/jpeg
        • twentyfourteen-full-width :
          • file : google_arts_and_culture_00_permissions_768-809×576.jpg
          • width : 809
          • height : 576
          • mime-type : image/jpeg
      • image_meta :
        • aperture : 0
        • credit :
        • camera :
        • caption :
        • created_timestamp : 0
        • copyright :
        • focal_length : 0
        • iso : 0
        • shutter_speed : 0
        • title :
        • orientation : 0
        • keywords :
      • type : image/jpeg
      • thumbnail : https://arturmarques.com/wp/wp-content/uploads/2020/07/google_arts_and_culture_00_permissions_768-150×150.jpg
      • id : 1079
      • file : google_arts_and_culture_00_permissions_768.jpg
      • url : https://arturmarques.com/wp/wp-content/uploads/2020/07/google_arts_and_culture_00_permissions_768.jpg
    • ./ups/2020-07/05/ARTURMARQUES_DOT_COM_WP_AMAM/google_arts_and_culture_app_03_running_768.jpg
      • attachment_id : 1080
      • date_created_gmt : 2020-07-05 18:06:05
      • parent : 0
      • link : https://arturmarques.com/wp/wp-content/uploads/2020/07/google_arts_and_culture_app_03_running_768.jpg
      • title : google_arts_and_culture_app_03_running_768.jpg
      • caption :
      • description :
      • metadata :
        • width : 809
        • height : 1045
        • file : 2020/07/google_arts_and_culture_app_03_running_768.jpg
        • sizes :
          • medium :
            • file : google_arts_and_culture_app_03_running_768-232×300.jpg
            • width : 232
            • height : 300
            • mime-type : image/jpeg
          • large :
            • file : google_arts_and_culture_app_03_running_768-793×1024.jpg
            • width : 793
            • height : 1024
            • mime-type : image/jpeg
          • thumbnail :
            • file : google_arts_and_culture_app_03_running_768-150×150.jpg
            • width : 150
            • height : 150
            • mime-type : image/jpeg
          • medium_large :
            • file : google_arts_and_culture_app_03_running_768-768×992.jpg
            • width : 768
            • height : 992
            • mime-type : image/jpeg
          • post-thumbnail :
            • file : google_arts_and_culture_app_03_running_768-672×372.jpg
            • width : 672
            • height : 372
            • mime-type : image/jpeg
          • twentyfourteen-full-width :
            • file : google_arts_and_culture_app_03_running_768-809×576.jpg
            • width : 809
            • height : 576
            • mime-type : image/jpeg
        • image_meta :
          • aperture : 0
          • credit :
          • camera :
          • caption :
          • created_timestamp : 0
          • copyright :
          • focal_length : 0
          • iso : 0
          • shutter_speed : 0
          • title :
          • orientation : 0
          • keywords :
        • type : image/jpeg
        • thumbnail : https://arturmarques.com/wp/wp-content/uploads/2020/07/google_arts_and_culture_app_03_running_768-150×150.jpg
        • id : 1080
        • file : google_arts_and_culture_app_03_running_768.jpg
        • url : https://arturmarques.com/wp/wp-content/uploads/2020/07/google_arts_and_culture_app_03_running_768.jpg
      • ./ups/2020-07/05/ARTURMARQUES_DOT_COM_WP_AMAM/google_arts_and_culture_app_02_tap_to_refresh_768.jpg
        • attachment_id : 1081
        • date_created_gmt : 2020-07-05 18:06:08
        • parent : 0
        • link : https://arturmarques.com/wp/wp-content/uploads/2020/07/google_arts_and_culture_app_02_tap_to_refresh_768.jpg
        • title : google_arts_and_culture_app_02_tap_to_refresh_768.jpg
        • caption :
        • description :
        • metadata :
          • width : 809
          • height : 1270
          • file : 2020/07/google_arts_and_culture_app_02_tap_to_refresh_768.jpg
          • sizes :
            • medium :
              • file : google_arts_and_culture_app_02_tap_to_refresh_768-191×300.jpg
              • width : 191
              • height : 300
              • mime-type : image/jpeg
            • large :
              • file : google_arts_and_culture_app_02_tap_to_refresh_768-652×1024.jpg
              • width : 652
              • height : 1024
              • mime-type : image/jpeg
            • thumbnail :
              • file : google_arts_and_culture_app_02_tap_to_refresh_768-150×150.jpg
              • width : 150
              • height : 150
              • mime-type : image/jpeg
            • medium_large :
              • file : google_arts_and_culture_app_02_tap_to_refresh_768-768×1206.jpg
              • width : 768
              • height : 1206
              • mime-type : image/jpeg
            • post-thumbnail :
              • file : google_arts_and_culture_app_02_tap_to_refresh_768-672×372.jpg
              • width : 672
              • height : 372
              • mime-type : image/jpeg
            • twentyfourteen-full-width :
              • file : google_arts_and_culture_app_02_tap_to_refresh_768-809×576.jpg
              • width : 809
              • height : 576
              • mime-type : image/jpeg
          • image_meta :
            • aperture : 0
            • credit :
            • camera :
            • caption :
            • created_timestamp : 0
            • copyright :
            • focal_length : 0
            • iso : 0
            • shutter_speed : 0
            • title :
            • orientation : 0
            • keywords :
          • type : image/jpeg
          • thumbnail : https://arturmarques.com/wp/wp-content/uploads/2020/07/google_arts_and_culture_app_02_tap_to_refresh_768-150×150.jpg
          • id : 1081
          • file : google_arts_and_culture_app_02_tap_to_refresh_768.jpg
          • url : https://arturmarques.com/wp/wp-content/uploads/2020/07/google_arts_and_culture_app_02_tap_to_refresh_768.jpg

        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:
        https://www.twitch.tv/settings/security

        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 (twillio.com) 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
        https://arturmarques.com/wp/wp-content/uploads/2020/07/twitch_02_code_correct_but_not_accepted_02_768.jpg (image/jpeg)

        twitch_02_code_correct_but_not_accepted_02_768.jpg


        twitch_03_code_correct_and_accepted_768.jpg
        https://arturmarques.com/wp/wp-content/uploads/2020/07/twitch_03_code_correct_and_accepted_768.jpg (image/jpeg)

        twitch_03_code_correct_and_accepted_768.jpg


        twitch_04_2fa_about_to_be_enabled_768.jpg
        https://arturmarques.com/wp/wp-content/uploads/2020/07/twitch_04_2fa_about_to_be_enabled_768.jpg (image/jpeg)

        twitch_04_2fa_about_to_be_enabled_768.jpg


        twitch_05_2fa_on_768.jpg
        https://arturmarques.com/wp/wp-content/uploads/2020/07/twitch_05_2fa_on_768.jpg (image/jpeg)

        twitch_05_2fa_on_768.jpg

        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:
        https://www.microsoft.com/en-us/microsoft-365/microsoft-teams/download-app

        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 https://www.bleepingcomputer.com/news/security/microsoft-teams-can-be-used-to-download-and-run-malicious-packages/

        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 live.com 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 Microsoft.com 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” (https://zoom.us) 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:
        https://web.microsoftstream.com/browse
        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:
        https://microsoftteams.uservoice.com/forums/555103-public/suggestions/32559460-camera-adjustments-in-meetings

        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 @ http://help.mp3tag.de/main_scripting.html

        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($geql($len(%album%),32),$left(%album%,32),%album%)

        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:
        $if($geql($len(%artist%),24),$left(%artist%,24),%artist%)

        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:

        $num(%track%,2)

        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.