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 1,862 other subscribers

Archive for the ‘Apple’ Category

Some notes on Input Director and alternatives: what about multiple platforms and mixing local plus remote access?

Posted by jpluimers on 2022/07/29

More than 10 years ago, I wrote about 7 screens; 3 computers; 1 keyboard/mouse to direct them all: Input Director and started with

At home, I have 7 screens on 3 computers on the same desk. That sounds like a clutter, but all these keyboards and mice hooked up to them add even more clutter. Until I found out about Input Direct…

In the mean time, I’ve mainly used a Mac with MacOS as a front-end to virtually logon to remote machines using both the internal display and one or two external monitors.

Especially when doing video (think Covid-19 and especially on-line meetings!) in addition to software development work, this is far from ideal.

So here are some things on my list of potential enhancements to this situation:

–jeroen

 

Posted in Apple, Hardware, Keyboards and Keyboard Shortcuts, KVM keyboard/video/mouse, Mac OS X / OS X / MacOS, Power User, Uncategorized, Windows | Leave a Comment »

Finger print as factor in authentication?

Posted by jpluimers on 2022/07/27

A finger print as authentication factor: be sure it is not the only factor, and devise a way to delete it just in case some party wants to force you to use it as an authentication factor.

Some links for my archive:

–jeroen

Posted in *nix, Apple, Mac OS X / OS X / MacOS, Power User | Leave a Comment »

The only practical way of running x86 VMs on Apple M1 seems to be QEMU based UTM

Posted by jpluimers on 2022/07/01

Few articles exist on running x86 VMs on Apple M1 architecture.

This is the best I found, and clearly states that QEMU based UTM is the way to go, but notably lacks 3D support: [Wayback/Archive.is] Apple Silicon M1: How to run x86 and ARM Virtual Machines on it? | by Dmitry Yarygin | Mar, 2021 | Medium

Without VMs, but running Windows x86_64 code is already possible using Windows 10 for ARM via Parallels: [Wayback] Windows 10 on M1 Macs: What you can do (virtualization, sorta) and can’t (Boot Camp) | Macworld.

VMware Fusion is not going to support x86_64 virtualisation anytime soon as per [Wayback/Archive.is] Fusion on Apple Silicon: Progress Update – VMware Fusion Blog – VMware Blogs

What about x86 emulation?

We get asked regularly about running x86 VMs on M1 Macs. It makes total sense… If Apple can emulate x86 with Rosetta 2, surely VMware can do something too, right?

Well, the short answer is that there isn’t exactly much business value relative to the engineering effort that is required, at least for the time being. For now, we’re laser focused on making Arm Linux VMs on Apple silicon a delight to use.

So, to be a bit blunt, running x86 operating systems on Apple silicon is not something we are planning to deliver with this project. Installing Windows or Linux from an x86 ISO, for example, will not work.

More on UTM, which is open source:

Now hopefully someone posts a Wiki of running x86_64 Windows on Apple M1 (:

This is a small start that it can be done [Wayback/Archive.is] Has anyone tried running Delphi on Windows ARM? – Delphi IDE and APIs – Delphi-PRAXiS [en]

It works well. I’ve managed to build and run my VCL and FMX projects on Android, iOS, Windows and Mac without any problems.
Note that both Windows ARM and the way it runs Delphi are still in preview so tread carefully!
On 4/18/2021 at 8:01 PM, Der schöne Günther said:
Can you confirm it cannot only build projects but also debug them?
I can debug Windows and Android no problem. I’m having issues debugging iOS as it’s stopping in the IDE but showing the CPU rather than code views. I believe this might be a badly built component I need to re-install rather than an issue with the environment but can’t confirm either way at the moment.

An update on the debugging issues on iOS – it’s all working now. My VM just needed a restart and I can debug without problems now.

--jeroen

Posted in Apple, M1 Mac, Mac, Mac OS X / OS X / MacOS, Power User, Qemu, UTM, Virtualization, Windows, Windows 10 | Leave a Comment »

How can you export the Visual Studio Code extension list? (via: Stack Overflow)

Posted by jpluimers on 2022/06/16

Adapted from [Archive.is] How can you export the Visual Studio Code extension list? – Stack Overflow, presuming that code is on the PATH:

  1. From the command-line interface on MacOS, Linux, BSD or on Windows with git installed:
    code --list-extensions | xargs -L 1 echo code --install-extension
  2. From the command-line interface on MacOS, Linux, BSD or on Windows without git installed:
    code --list-extensions | % { "code --install-extension $_" }

    or, as I think, more clearly (see also [WayBack] syntax – What does “%” (percent) do in PowerShell? – Stack Overflow):

    code --list-extensions | foreach { "code --install-extension $_" }

    or even more explanatory:

    code --list-extensions | ForEach-Object { "code --install-extension $_" }
  3. From the command-line interface on Windows as a plain cmd.exe command:
    @for /f %l in ('code --list-extensions') do @echo code --install-extension %l
  4. On Windows as a plain cmd.exe batch file (in a .bat/.cmd script):
    @for /f %%l in ('code --list-extensions') do @echo code --install-extension %%l
  5. The above two on Windows can also be done using PowerShell:
    PowerShell -Command "code --list-extensions | % { """""code --install-extension $_""""" }"

    Note that here too, the % can be expanded into foreach or ForEach-Object for clarity.

All of the above prepend “code --install-extension ” (note the trailing space) before each installed Visual Studio Code extension.

They all give you a list like this which you can execute on any machine having Visual Studio Code installed and its code on the PATH, and a working internet connection:

code --install-extension DavidAnson.vscode-markdownlint
code --install-extension ms-vscode.powershell
code --install-extension yzhang.markdown-all-in-onex

(This is about the minimum install for me to edit markdown documents and do useful things with PowerShell).

Of course you can pipe these to a text-file script to execute them later on.

The double-quote escaping is based on [Wayback/Archive.is] How to escape PowerShell double quotes from a .bat file – Stack Overflow:

you need to escape the " on the command line, inside a double quoted string. From my testing, the only thing that seems to work is quadruple double quotes """" inside the quoted parameter:

powershell.exe -command "echo '""""X""""'"

Via: [Archive.is] how to save your visual studio code extension list – Google Search

--jeroen

Posted in *nix, *nix-tools, .NET, bash, Batch-Files, CommandLine, Console (command prompt window), Development, Mac OS X / OS X / MacOS, Power User, PowerShell, PowerShell, Software Development, Visual Studio and tools, vscode Visual Studio Code, Windows, Windows 10, Windows 7, Windows 8, Windows 8.1, Windows Development, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server 2016, WSL Windows Subsystem for Linux, xargs | Leave a Comment »

MacOS: default PCL printer driver only allows monochrome (black&white/grayscale); default PostScript allows colour

Posted by jpluimers on 2022/05/23

Printing on MacOS can be less Plug&Play than one hopes for.

For default printer drivers on MacOS for the same printer:

  • Postscript allows colour and monochrome (black & white / grayscale)
  • PCL only allows monochrome (black & white / grayscale)

One solution for my OKI MC363 is to use the HP PCL driver and fake it as a HP Colour LaserJet 9500 (which provides a similar amount of memory, and colour duplex A4 printing):

Read the rest of this entry »

Posted in Apple, Development, EPS/PostScript, Hardware, Mac OS X / OS X / MacOS, MC342 printer/scanner, OKI C332, OKI MC363/MC363DNW, OKI Printers, Power User, Printers | Leave a Comment »

How to view the html page source of a website in Safari – Macintosh How To

Posted by jpluimers on 2022/04/14

[Wayback] How to view the html page source of a website in Safari – Macintosh How To

You can enable the extra menu in Safari by selecting ‘Preferences’ under Safari in the OS X menu bar  and then under the ‘Advanced’ pane select the checkbox that says ‘Show Develop menu in menu bar.’

This is the option you need:

a

MacOS - Safari - Show Develop menu in menu bar

MacOS – Safari – Show Develop menu in menu bar

–jeroen

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

Kris on Twitter is a bit radical against shell scripts. Learn why.

Posted by jpluimers on 2022/04/13

I say to people: only use shell interactively, don’t write scripts. Never. Not one.
But Kris, they ask, why so radical?
Because of this:

is the literal English Google Translation of the German text

Ich sage den Leuten: benutzt Shell nur interaktiv, schreibt keine Scripte. Nie. Nicht eines.
Aber Kris, fragen sie, wieso so Radikal?
Deswegen:

then links to [Wayback/Archive] Jan Schaumann on Twitter: “TIL zgrep(1) is a shell script. BSD basically does “zcat | grep”, but GNU does “gzip -dc | sed”. How did I learn that? The fun way! CVE-2022-1271, arbitrary-file-write and code execution vulnerability in GNU zgrep / gzip. …”:

Read the rest of this entry »

Posted in *nix, *nix-tools, Apple, ash/dash, ash/dash development, bash, bash, BSD, Development, Mac, Mac OS X / OS X / MacOS, Power User, Scripting, Software Development | Leave a Comment »

Figuring out which processes are preventing to eject/unmount my MacOS Time Machine backup USB drive

Posted by jpluimers on 2022/03/31

One day, a MacOS Time Machine backup USB drive could not me ejected/unmount.

These links helped me figure out what was wrong via [Wayback] find which macos program prevents unmount – Google Search:

  • [Wayback] macos – The volume can’t be ejected because it’s currently in use – Ask Different (Thanks [Wayback] CousinCocaine, [Wayback] Paul Gilfedder and [Wayback] Alan W. Smith)

    Q:

    • The volume can’t be ejected because it’s currently in use.
    • The disk “Diskname” wasn’t ejected because one or more programs may be using it.“.
    • umount(/Volumes/Diskname): Resource busy -- try 'diskutil unmount'

    My question: How do I know what program is using my drive so I can properly quit that program and eject my drive?

    The volume can't be ejected because it's currently in use. The disk "Camel" wasn't ejected because one or more programs may be using it. The disk "Mammtoh" wasn't ejected because one or more programs... xkcd

    A:

    lsof is indeed your best bet. The fastest and easiest way would be this :-

    sudo lsof /Volumes/myDrive
    

    It can take a couple minutes to run, but once it’s complete, it gives you a list of open files on the disk. The output will look something like this:

    COMMAND    PID  USER   FD   TYPE DEVICE SIZE/OFF  NODE NAME
    mds         89  root   19r   DIR   52,3      432     2 /Volumes/Photos
    mds         89  root   23r   DIR   52,3      432     2 /Volumes/Photos
    Finder     681 alans   14r   DIR   52,3      432     2 /Volumes/Photos
    QuickLook 2158 alans    9r   REG   52,3  1141591 78651 /Volumes/Photos/_tmp_iphone_10_backup/APC_1546.JPG  
    

    In this case, it’s the QuickLook application that has a file open. Closing the application directly is the best way to fix the issue. However, that’s not always possible. For example, QuickLook doesn’t show up as an application you can get to in the Dock.

    If you can’t close the application manually, you can use the kill command to terminate it from the command line. To do that, use the PID from the second column as the ID to kill. From the above example, it would be:

    kill 2158
    

    Note that sometimes that doesn’t work and a more aggressive form of kill must be used. Here’s a series of escalating aggressiveness (using the example PID of 2158):

    kill 2158
    sudo kill 2158
    sudo kill -INT 2158
    sudo kill -KILL 2158
    

    You should be able to eject the disk once the process/application has been killed.

    One final note, lsof can take a minute or two. It can also hang, but you should give it at least a few minutes before you decide that’s what happened.

    Also, sometimes the base command sudo lsof /Volumes/myDrive won’t find anything. If that happens, try adding the +D argument (i.e. sudo lsof +D /Volumes/myDrive). That will do a top down scan of the disk. It’ll take longer, but it should pick up anything that’s causing the disk to be un-ejectable.

    (Hat tip to Alec Jacobson’s post for extra details.)

    C:

    sudo lsof /Volumes/drive is much faster than sudo lsof | grep /Volumes/drive

  • [Wayback] Find out which application is using external hard drive in order to eject it « Alec’s Web Log
    sudo lsof +D "/Volumes/[name of drive]"

    You can always run the lsof command again to see if the process really died.

    kill [PID of process]
    sudo kill [PID of process]
    sudo kill -INT [PID of process]
    sudo kill -KILL [PID of process]
  • [Wayback] time machine – How do I make Spotlight stop indexing my Backup drive? – Ask Different (thanks [Wayback] hectorpal!)

    I finally found you cannot disable Spotlight to index Backups.backupdb.

    [Wayback] Apple Support. OS X El Capitan: Spotlight preferences

    If you add a Time Machine backup disk to the privacy list, you will continue to see messages that Spotlight is indexing your backup disk. This indexing is necessary for Time Machine to function properly and can’t be disabled. Spotlight does exclude from searches any items you store on your backup disk that are not part of a Time Machine backup.

  • [Wayback] If you can’t eject a disk from Mac – Apple Support

    If you can’t eject an external disk or storage device

    1. On your Mac, choose Apple menu  > Log Out, then log in again. Try to eject the disk again.
    2. If you still can’t eject the disk, choose Apple menu  > Shut Down. Disconnect the disk from your computer, then start up your computer again.

This figured out which processes were involved:

# sudo su -

# lsof +D /Volumes/Samsumg860Evo4TB

The main processes keeping file handles in use on the SSD device where mds and mds_stores (similar as in [Wayback] How to fix: The volume can’t be ejected because it’s currently in use). Killing spotlight did not help, and logoff failed as well: I had to shutdown the whole machine to be able to detach the USB drive.

So it was Spotlight galore all over again, which is odd, as this is a USB3 SSD for which the Time Machine backup had tried to update for more than 12 hours, so Spotlight – if indexing at all – should have been long done.

Spotlight galore:

The final solution was to perform a shutdown of the machine. It had not been for over 3 months, so apparently that caused some confusion for the combination of Spotlight and Time Machine.

–jeroen

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

Installing Wireshark on MacOS is not as simple as `brew install wireshark`

Posted by jpluimers on 2022/03/16

I wish that MacOS Homebrew would warn in advance of any caveates instead of after installing.

Only after brew install wireshark [Wayback] it is told that:

==> wireshark cask is installed, skipping link.
==> Caveats
This formula only installs the command-line utilities by default.

Install Wireshark.app with Homebrew Cask:
  brew install --cask wireshark

If your list of available capture interfaces is empty
(default macOS behavior), install ChmodBPF:
  brew install --cask wireshark-chmodbpf

Now what? Do I need to uninstall Wireshark first, or does the cask stuff just work when it is installed?

These two do not make me happy:

Related:

–jeroen

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

Boomer screenshots: wondering why Windows still has no keyboard shortcut for saving a screenshot or screen snippet to disk

Posted by jpluimers on 2022/03/14

With the disappearing PrtScn buttons on modern keyboards, boomer screenshots are about the only way to easily persist a screenshot, as these are the only available Windows screenshot shortcuts:

  • PrtScn: copies full screenshot to the clipboard; multiple invocations overwrite the clipboard
  • Windows + PrtScn: saves full screenshot to a file; multiple invocations saves to new files
  • Windows + Shift + S: copies full screen or part of the screen to the clipboard, and allows manual action to start snippet tool to save the clipboard contents; often looses the image when on remote desktop connections or when copying something else to the clipboard; multiple invocations overwrite the clipboard

Now look at macOS what a choices, and how less messy than on Windows:

macOS has various shortcuts to save (partial) screenshots to clipboard or file

macOS has various shortcuts to save (partial) screenshots to clipboard or file

For macOS 10.14 Mojave and newer, you can even set the folder (default: Desktop) to save the screenshots to:

I want this ease in Windows as well, and maybe I can in part without installing external tools and modifying existing shortcuts to make things easier:

Written after bumping into [Archive.is] Jeff Atwood on Twitter: “Someone just called a smartphone pic of their monitor a “boomer screenshot” and I literally LOLed 🤣… “

–jeroen

Posted in Apple, LifeHacker, Mac OS X / OS X / MacOS, Power User, PowerToys, Windows, Windows 10 | Leave a Comment »