The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 2,482 other followers

Archive for the ‘Home brew / homebrew’ Category

Still looking for base64url decoding tools, both on-line and for MacOS homebrew

Posted by jpluimers on 2021/02/11

Remember the screenshot on the right from yesterdays post Kristian Köhntopp explaining theories?

In the end, I:

  1. saved that tweet
  2. in
  3. then took the screenshot image from there (see below)
  4. cut out the grey parts, then posted the middle part

I much more would have used the screenshot functionality of Google as described here by Terence Eden:

[WayBack] twitter – How to convert a tweet to image – Stack Overflow

Google has a secret screenshot API

For example, you can use it to get a screenshot of a tweet like this

At the bottom of that JSON response, you’ll see

"screenshot": {
     "data": "_9j_4AAQSkZJRgAB.....=",
     "height": 569,
     "mime_type": "image/jpeg",
     "width": 320

You will need to Base64 decode it using the URL and Filename safe alphabet.

That will give you a JPG screenshot of the Tweet.

I was hoping for an on-line way, so I followed [WayBack] Google’s Secret Screenshot API – Terence Eden’s Blog.

The blog post pointed me to a Python based script ([WayBack] Python-Twitter-Hacks/ at master · edent/Python-Twitter-Hacks · GitHub) but had no online way.

So I tried out a few on-line things myself that failed:

Then I found out the script was just a proof of concept with hard coded URL and filename.

So I forked the repository, and fixed the script basing it on Python 3.

More on that next week.


  • [WayBack] RFC 4648 – The Base16, Base32, and Base64 Data Encodings: Base 64 Encoding with URL and Filename Safe Alphabet:
       The Base 64 encoding with an URL and filename safe alphabet has been
       used in [12].
       An alternative alphabet has been suggested that would use "~" as the
       63rd character.  Since the "~" character has special meaning in some
       file system environments, the encoding described in this section is
       recommended instead.
       This encoding may be referred to as "base64url".  This encoding
       should not be regarded as the same as the "base64" encoding and
       should not be referred to as only "base64". 
       This encoding is technically identical to the previous one, except
       for the 62:nd and 63:rd alphabet character, as indicated in Table 2.
             Table 2: The "URL and Filename safe" Base 64 Alphabet
         Value Encoding  Value Encoding  Value Encoding  Value Encoding
             0 A            17 R            34 i            51 z
             1 B            18 S            35 j            52 0
             2 C            19 T            36 k            53 1
             3 D            20 U            37 l            54 2
             4 E            21 V            38 m            55 3
             5 F            22 W            39 n            56 4
             6 G            23 X            40 o            57 5
             7 H            24 Y            41 p            58 6
             8 I            25 Z            42 q            59 7
             9 J            26 a            43 r            60 8
            10 K            27 b            44 s            61 9
            11 L            28 c            45 t            62 - (minus)
            12 M            29 d            46 u            63 _
            13 N            30 e            47 v           (underline)
            14 O            31 f            48 w
            15 P            32 g            49 x
            16 Q            33 h            50 y         (pad) =


Read the rest of this entry »

Posted in Apple, Development, Encoding, Home brew / homebrew, Mac OS X / OS X / MacOS, Power User, Software Development, Web Browsers | Leave a Comment »

Brew reminder to self

Posted by jpluimers on 2020/08/05

From the update process:

==> Caveats
==> hub
Bash completion has been installed to:

zsh completions have been installed to:
==> python
Python has been installed as

Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
`python3`, `python3-config`, `pip3` etc., respectively, have been installed into

If you need Homebrew's Python 2.7 run
  brew install python@2

You can install Python packages with
  pip3 install 
They will install into the site-package directory

==> youtube-dl
Bash completion has been installed to:

zsh completions have been installed to:
==> mpv
zsh completions have been installed to:
==> node
Bash completion has been installed to:


Posted in Apple, Development, Home brew / homebrew, Power User, Python, Scripting, Software Development | Leave a Comment »

Binary search for finding problematic versions: install a specific version in homebrew and git bisect

Posted by jpluimers on 2020/04/14

I’ve used these excellent posts to find out which youtube-dl version started to exhibit troublesome NPO downloads, then later find the actual failing commit:

Why the effort? I needed an as recent as possible youtube-dl working on as many sites as possible because of some work preparation.

The first link is very important because brew versions and alternatives have stopped working some 6 years ago, even though they turn up high on Google searches for brew install specific version. Hence the quote from the first link:

Installing software packages on Mac is very easy with homebrew. You typically get the latest version, however often in production you do not have the latest version of a software package. Another use case is when you upgrade to the latest and you find out there is bug which blocks you doing something. In this case you would like to downgrade to the previous version until the bug is fixed.In both cases you need to install a specific version of a software package with homebrew on your Mac, which tends to be not that trivial. There is a lot of discussion about this on stackoverflow but some of them are outdated based on brew versions which is not available anymore.

Read the rest of this entry »

Posted in Apple, Conference Topics, Conferences, Development, DVCS - Distributed Version Control, Event, git, Home brew / homebrew, Power User, SocialMedia, Software Development, Source Code Management, YouTube | Leave a Comment »

macos – Upgrade all the casks installed via Homebrew Cask – Stack Overflow

Posted by jpluimers on 2020/03/23

I missed that this was merged to master a few months ago: [WayBack] macos – Upgrade all the casks installed via Homebrew Cask – Stack Overflow:

December 2017 Update

I thought it would never happen, but there is now finally an official upgrade mechanism for Homebrew Cask (see [WayBack] Issue 3396 for the implementation)! To use it, simply run this command:

brew cask upgrade

However this will not update casks that do not have versioning information (version :latest) or applications that have a built-in upgrade mechanism (auto_updates true). To reinstall these casks (and consequently upgrade them if upgrades are available), run the upgrade command with the --greedy flag like this:

brew cask upgrade --greedy

It means you do not need manual scripts any more. So you can do without this workaround: [WayBack] GitHub – buo/homebrew-cask-upgrade: A command line tool for upgrading every outdated app installed by Homebrew Cask.

More information at [WayBack] homebrew-cask/ at master · caskroom/homebrew-cask · GitHub: Updating/Upgrading Casks


Posted in Apple, Home brew / homebrew, Mac OS X / OS X / MacOS, Power User | Leave a Comment »

Installing PowerShell Core on macOS and Linux | Microsoft Docs

Posted by jpluimers on 2018/03/26

I forgot to blog about this before, but 2 months ago PowerShell core came available: [WayBack] PowerShell Core 6.0: Generally Available (GA) and Supported! | PowerShell Team Blog.

[WayBack] Installing PowerShell Core on macOS and Linux | Microsoft Docs is easy (one way is through homebrew:

$ brew tap caskroom/cask
$ brew cask install powershell

If you already installed a beta, then the steps are these:

$ brew update
$ brew cask reinstall powershell

Note that after installation, it is known as pwsh (at least one of the betas named it powershell) to set PowerShell Core apart from PowerShell*:

$ pwsh --version
PowerShell v6.0.2

Via: [WayBack] PowerShell Core 6.0 is a new edition of PowerShell that is cross-platform (Windows, macOS, and Linux), open-source, and built for heterogeneous environm… – Lars Fosdal – Google+

*pwsh versus powershell

There has been quite a discussion on the PowerShell Core repository on the rename, but I think it is for a good reason.

Too bad that during part of the beta, the old name powershell was used, but beta-time means things break every now and then.

PowerShell Core is sufficiently different from prior PowerShell versions to warrant a name change. This also makes it a lot easier to use them side-by-side.

Many other names (like posh, pcsh or psh) were considered, usually because of naming conflicts with existing tools (like posh) or easy confusion with existing shells (like pcsh and csh). A benefit on Linux/macOS is that it now ends with sh like virtually all other shells.

More background information is at:


Posted in Apple, CommandLine, Development, Home brew / homebrew, Mac, Mac OS X / OS X / MacOS, MacBook, MacBook Retina, MacBook-Air, MacBook-Pro, MacMini, Power User, PowerShell, PowerShell, Scripting, Software Development | Leave a Comment »

%d bloggers like this: