Archive for August 8, 2023

Tuesday, August 8, 2023

Kaleidoscope 4.1

Florian Albrecht (Mastodon):

Kaleidoscope can now directly talk to Git. While Kaleidoscope could always integrate with Git, until now it could only show the results of a Git operation, such as git difftool and git mergetool, which was typically initiated through a Git client like Tower.


For the 4.1 update, we decided to focus on the ability to display and compare multiple revisions of a file.


Below the File History entries, there are two more useful functionalities:

  1. The Filter field allows quick filtering of the commit list. Enter text to search in authors, commit hashes, dates, and the commit message. For example, entering your name will filter the list to show only your commits.
  2. The branch button in the bottom right allows you to look at a different git reference, such as a specific branch or tag. Selecting an entry will reload the list and show commits for that reference.

I’m a big fan of Tower, but it has always been weak at showing the history of a single file. You can’t quickly open a file from Terminal or via drag-and-drop. Once you get the file history open, it doesn’t show the entire commit message. Once you open the commit associated with a file revision, you can see the other files, but it still doesn’t show the full commit message. The full History view does, but you can’t copy the commit hash from the commit view to paste it into the History view’s search field. Tower supports multiple windows but doesn’t make it very easy; you can’t just select two files and open their histories at the same time.

Kaleidoscope makes some of these tasks really easy. There are many ways to get it to open a single file, and then it automatically loads the history (and even the previous version, if you want). It’s easy to navigate the history to pick which versions you want to compare. I’ve seen many different apps implement this type of interface, and Kaleidoscope’s version may be the best. There’s a popover that shows the full commit message, though unfortunately the text in it isn’t selectable. It would also be nice to be able to resize the history pane to see bit more of each commit summary. It’s easy to open multiple windows to look at the histories of different files, and they show up in Open Recent so it’s easy to get back to them.


Update (2023-08-09): Kaleidoscope 4.1 is not sandboxed, and I think this Git integration would have been tough to implement and less smooth to use from a sandboxed app. (Telling an app to open a file does not give it access to the associated Git repository. There are ways to automatically get access to a nearby file, e.g. the journal file next to a database, but I don’t think this would work with Git, whose data is typically in an enclosing folder.) So I wonder whether this feature would have ever shipped if Kaleidoscope had remained in the Mac App Store.


Unicode Is Harder Than You Think

Marco Cilloni (via Cédric Luthi, Hacker News):

Reading the excellent article by JeanHeyd Meneide on how broken string encoding in C/C++ is made me realise that Unicode is a topic that is often overlooked by a large number of developers. In my experience, there’s a lot of confusion and wrong expectations on what Unicode is, and what best practices to follow when dealing with strings that may contain characters outside of the ASCII range.


The fact UTF-32 is a fixed-width encoding is only marginally useful, due to grapheme clusters still being a thing. This means that the equivalence between codepoints and rendered glyphs is still not 1:1, just like in UCS-4[…]


As I previously mentioned, Unicode codepoints can be modified using combining characters, and the standard supports precomposed forms of some characters which have decomposed forms. The resulting glyphs are visually indistinguishable after being rendered, and there’s no limitation on using both forms alongside each other in the same text bit of text[…]Another headache is the fact Unicode also may define special forms for the same letter or group of letters, which are visibly different but understood by humans to be derived from the same symbol.


Another User Locked Out of Apple Account

Wasingtheisofwas (Hacker News):

So this morning I go to update my apps. Instead of it going ahead with the update or asking for my fingerprint or the like, I get a message saying “your account has been disable in the app store and itunes”.


I reach out to customer service. They tell me that I have violated the terms and conditions of the app store. I ask them to explain and they say that the account has been flagged for “Fraudulent Patterns”. I have no idea what that means, or what I could possibly have done on my iPhone that would constitute fraud.

The customer support rep tells me that I will need to create a new Apple ID. When I ask him what will happen to all of the content that I have paid for over the years, as well as the subscriptions that I am currently paying for, he tells me that there is nothing he can do and that I cannot be refunded.


The Apple Support Senior Advisor told me it was permanent.[…]

It’s not “under review” It’s not “temporary” and there is no “possibility of regaining my ID”

Because it’s about security, Apple won’t say what the infraction supposedly was. The support manager says there’s no procedure to get the account reinstated even though this happens “frequently.”

Francisco Tolmasky:

If I am understanding this thread correctly, Apple might disable your AppleID if your credit card is stolen… even if the fraudulent charge doesn’t even happen on your account. It’s crazy that disabling an AppleID is a remedy for anything, let alone things not happening on your account. That means you’d lose all your emails on iCloud, BACKUPS on iCloud, data, your logins to every site you used sign-in-with-Apple, the list goes on. This is absolutely crazy.


Update (2023-08-09): Ezekiel Elin notes that it may be that Wasingtheisofwas retains access to iCloud and was only barred from purchased content. In theory, the iCloud data could be migrated to a new account, although I don’t think it would necessarily be easy or even possible for all apps.

Matt Ankerich:

I can’t get apple to let me CHANGE my appleID and delete the atme email address associated with it (it is on the dark web because of a data leak, and I get hundreds of spam emails addressed to the account daily). The only remedy is to delete the appleID which would annihilate my purchases. The holiness that apple treats these original ids is absurd not to mention that we can’t merge IDs purchased content into single accounts.


Update (2023-08-15): Mike Rockwell:

I hope we’re nearing a future where you can realistically use an iPhone without an Apple ID at all — replacing all of Apple’s services, including the App Store, with independent alternatives.

Lots of third-party apps are locked in via CloudKit.

What’s the Deal With Sensor Tower?

John Gruber:

So, I see three ways Sensor Tower collects usage information for apps and websites that aren’t their own: (1) ad-blocking web browser extensions, (2) screen time monitoring apps for Android and iOS, which on iOS requires access to Screen Time, and (3) the Adblock Luna VPN. (Perhaps I’m underestimating how much data they can collect from users who play Melody Run.)

These apps may well be popular — again, they claim that Adblock Luna has been installed by over 15 million users — but is the data they collect from them representative of the general public?


The news media so badly wants to know usage data that they just accept Sensor Tower and other such firms’ pronouncements at face value, without ever describing — let alone questioning — how they ostensibly know what they claim to know about very private data.