Normal view

There are new articles available, click to refresh the page.
Before yesterdayMain stream

How does QuickLook create Thumbnails and Previews? With an update to Mints

By: hoakley
4 November 2024 at 15:30

If you encounter problems with QuickLook not creating Thumbnails or Previews properly, one of the first steps is to discover which code is responsible for generating those for QuickLook. Prior to macOS Sequoia, the standard way to do that was using the command tool qlmanage, among whose options is -m, to list all the qlgenerators available on your Mac. If you’ve tried that in Sequoia, you’ll surely have noticed that no longer works.

qlmanage

Since Catalina, Apple has been encouraging developers to switch away from qlgenerators to app extensions to create custom Thumbnails and Previews for QuickLook, and Sequoia is the first version of macOS that can’t use third-party qlgenerators. I have noticed some document types that only a few weeks ago in Sonoma still used custom thumbnails and full previews, but now can’t do so, although others continue to work normally.

These are controlled in the Quick Look item in Login Items & Extensions in General settings.

qlextnsseq

That should list all third-party app extensions providing this service, and enabling the right one(s) could fix some of those problems. But it turns out this list isn’t complete, and doesn’t in any case tell you which app extension handles which file type. For those, you’d normally turn to qlmanage, but its -m option can only see the qlgenerators in macOS, and no third-party app extensions at all. In fact, qlmanage is now of little help for anything related to QuickLook. I’ve gone back through Sonoma and Ventura, and qlmanage there is no different: although it does list third-party qlgenerators, none of those provided in app extensions appear in its list.

QuickLook app extensions

As far as I can discover, Apple doesn’t provide any equivalent of qlmanage that can report on QuickLook app extensions. The closest it comes is in the pluginkit tool, that can list all app extensions known to macOS. With a bit of tweaking, its -m option can reveal which of those use the QuickLook SDKs for Thumbnails or Previews.

Armed with the appex bundle path from pluginkit, you can then inspect the Info.plist in each, where there’s an array of QLSupportedContentTypes giving the UTIs of all file types supported by that appex. Although I’m sure someone could implement that in a shell script, this seemed an ideal task for my free utility Mints.

Mints and QuickLook

Version 1.20 of my free utility Mints is now available from here: mints120
from Downloads above, from its Product Page, and via its auto-update mechanism.

mints1201

This adds a twenty-fifth button to the app’s control window, named QuickLook, at the bottom left. Click on that and Mints will open a new window and fill it with information about all the qlgenerators and QuickLook appexes your Mac knows about.

mints1202

For qlgenerators, you’re given the file UTI, the path to the qlgenerator file, and (when available) its version number, e.g.
com.adobe.pdf 👉/System/Library/QuickLook/PDF.qlgenerator (1002.2.3)

App extensions are divided into two, the first are those providing Previews, and the second those for Thumbnails, e.g.
com.apple.applescript.text 👉/Applications/PreviewCode.app/Contents/PlugIns/Code Previewer.appex

This is an appex provided in one of Black Pyramid Software’s superb Preview series, in PreviewBundle 2 from the App Store (highly recommended).

You will see a few entries like Safari’s
[none] 👉/System/Volumes/Preboot/Cryptexes/App/System/Applications/Safari.app/Contents/PlugIns/SafariQuickLookPreview.appex
with an appex that doesn’t have a list of file types in QLSupportedContentTypes.

Checking UTIs

It’s easy to guess which UTIs represent many file types, but some are a bit more cryptic. For those, copy and paste the UTI into the UTI field of my free UTIutility and it will give you clues as to its identity, including file extensions.

utilutil121

Unfortunately, some of the system qlgenerators support generic UTIs such as
public.audio 👉/System/Library/QuickLook/Audio.qlgenerator (1002.2.3)
public.image 👉/System/Library/QuickLook/Image.qlgenerator (1002.2.3)
public.movie 👉/System/Library/QuickLook/Movie.qlgenerator (1002.2.3)
which clearly cover broad ranges of more specific file types, but don’t provide any more specific information.

How to identify QuickLook extensions

  • List installed QuickLook extensions using Mints’ QuickLook button.
  • Identify the file’s UTI using UTIutility.
  • Locate the UTI in the list of extensions.
  • If no match is found, check UTIs listed in UTIutility as Conforms.
  • Check Quick Look item in Login Items & Extensions in General settings, to ensure that extension is enabled.

Next up for Mints is a feature to explore app extensions. I may be a little longer on that one.

How Sequoia has changed QuickLook and its thumbnails

By: hoakley
31 October 2024 at 15:30

QuickLook is the subsystem in macOS responsible for providing two types of document preview, small Thumbnails and full Previews. If you’ve already upgraded to Sequoia, you’ll have noticed that some document types are no longer displayed with their custom Thumbnails or Previews. This article explains what has happened, and how it should work in the future.

As I’ll detail on Saturday morning, QuickLook (or Quick Look) is the latest in a series of methods for providing custom icons and previews for documents, that started back in the initial versions of Classic Mac OS. macOS ships with its own code to generate Thumbnails and Previews for a wide range of standard file types, from text and PDF to audio and movies. To extend these to other types, developers are encouraged to provide their own code.

Prior to macoS 10.15 Catalina in 2019, the display of Thumbnails was supported by the QuickLook framework. From Catalina onwards, this is provided by a new framework named QuickLook Thumbnailing. The older framework is documented here, and had been deprecated for some years. Its replacement is documented here. To extend these, the older framework used QuickLook generators with the extension .qlgenerator, but in the newer framework this function is provided by QuickLook preview extensions, in particular Thumbnail Extensions, that were explained to developers at WWDC in 2019.

As with most deprecated features, eventually the time comes for Apple to remove support for the old, and for QuickLook generators that has occurred in macOS 15.0 Sequoia. From now on, QuickLook Generator plugins no longer work. Oddly, those provided by macOS in /System/Library/QuickLook are still named with the old extension of .qlgenerator, but all custom support now has to use the new framework in App Extensions.

To check whether an app is still trying to use an old QuickLook Generator, look inside the app bundle in Contents/Library/QuickLook. If you see one or more .qlgenerator bundles there, then those no longer work in Sequoia. Instead, you should see new Thumbnail Extensions in Contents/PlugIns, where you should see App Extension bundles with names ending in something like Thumbnail.appex and QuickLook.appex. Some of the better apps provide both QuickLook Generators for compatibility with Mojave and earlier, and App Extensions for more recent macOS.

If the app you rely on to generate custom QuickLook Thumbnails and Previews doesn’t yet come with those App Extensions, contact their Support and ask them when they’re going to implement the changes brought five years ago in Catalina. Particularly if you’re paying them a subscription, it’s time they caught up. Until they do, I’m afraid those Thumbnails and Previews simply won’t work in Sequoia, and you’ll continue to see generic icons rather than Thumbnails.

读书小结六

By: Juby
28 October 2024 at 12:10

狡猾的细胞:癌症的进化故事与治愈之道

  • 我们的身体是一个依赖多细胞合作运行的社会,而癌症就是其中的作弊细胞,它们拒绝合作,只会搭便车,利用和消耗公共资源满足的自己的私欲,无限繁殖,最终导致这个社会的崩溃。

  • 我们身体的细胞一直处于一种博弈状态——父本基因和母本基因的博弈、细胞控制和细胞自由的博弈。一方面不能让细胞无限繁殖,另一方面又不能过度抑制细胞生长,唯有在两者之间达到一个微妙的平衡。

  • 我们的生命之树上长满了癌症之果,只要细胞进行繁殖,就可能在演化的过程中出现变异,从而导致癌症。研究发现,生育更多的女性有更高的几率患癌。

  • 为什么大象患癌的概率低而小白鼠患癌的概率高?这是不同物种的演化策略。大象体型更大、寿命更长,需要对癌症抑制投资更多资源,但同时也导致它们生长缓慢,繁殖能力弱,而小白鼠则相反。

  • 对于癌细胞来说,我们的身体就是它们生存的生态系统,癌细胞在这个系统中进行演化,而我们则在地球生态系统中进行演化。面对人体的免疫系统和其他不利环境,癌细胞想要活下去并繁殖,虽然它们本身是作弊者,但也会产生合作,共同应对恶劣的生存环境。

  • 适应性治疗不是要消灭癌症,而是随着肿瘤的变化相应调整治疗方案,简单来说,肿瘤扩散的时候加大用药,肿瘤稳定的时候减少用药甚至停药。对于无法彻底杀死的肿瘤来说,适应性治疗能降低因用药太多而演化出更恶性肿瘤的概率,让繁殖不那么快的肿瘤活着,就是对繁殖更快的恶性肿瘤的抑制。

猪八戒是哪八戒

  • 解读《西游记》的小书,讲述神话人物的来历和佛道故事,分析命名和情节的寓意。我没看过原著,更没想过探究背后深意,只是闲读颇有意思。

  • 《西游记》宣扬全真教的思想,主张三教合一,反对外丹,提倡内丹。一些人物的名字或外号其实就是炼丹的材料,比如红孩儿是铅、金鼻白猫老鼠精是水银。

  • 《西游记》很讲究阶级差别,有后台的妖怪作乱终能平安无事,没有后台的大多横死。孙悟空自称妖怪的外公,也是一种划清阶级界限的说法,既占妖怪的便宜,又不能与妖怪关系太近。

  • 《西游记》也有政治暗喻,车迟国讽嘉靖,乌鸡国除了是个王子复仇记,还影射朱祁镇和朱祁钰,宝象国又隐藏着朱棣、朱高炽和朱瞻基的历史,灭法国则揭露了和尚的腐败。

  • 另外一些故事则引申到了恋爱、职场等话题:朱紫国国王是渣男,黄袍怪并不是真的爱老婆,小白龙是争夺继承权失败被贬,铁扇公主是失败的精英女性,观音是人力资源管理大师,白骨精是真正的草根事业型女性,等等。

コンビニ人間

  • 惠子,一个从小脑回路就与众不同的人,为了不让父母伤心,开始隐藏自己的真实想法,但始终无法融入社会,用家人的话来说,就是“治不好”。

  • 大学时在便利店打工,毕业后尝试找其他工作仍融入不了,还是继续在便利店打工,现在已经三十七岁,单身女性。便利店就是她的栖身之所。

  • 休息日和朋友聚会,提到自己的现状,在别人眼中就是异类。

  • 白羽是便利店新来的员工,但他来打工的目的是从顾客中找一个结婚对象。白羽认为现在社会和绳文时代没有区别,强大的男性可以任意挑选女性,对群体没有贡献的人就会被遗弃。

  • 惠子看到被辞退的白羽无家可归,在便利店外觊觎女性顾客,请他到自己家住。

  • 自己家里住了一个男人,只是把这个消息告诉妹妹,妹妹便激动坏了,自顾自话,说姐姐终于“治好了”。便利店的同事听到这个消息,也不再关心商品售卖,一味地谈起惠子的事。

  • 妹妹来看望惠子,却发现惠子还是一如从前,哭了。白羽为惠子解围,假装他们是恋人关系,只是吵架了。

  • 惠子辞了便利店的工作,人生没有了目标,连作息都不正常了,她的进食和休息,都是因便利店的工作所需。在白羽的陪同下,终于要去面试工作了,进到便利店,看到随意摆放的商品,一下子又恢复了身为便利店员工的本能。

  • 面对生气的白羽,惠子说白羽对作为便利店员的她是不必要的东西。惠子的每个细胞都是为了便利店而运转,她要赶快找一个新的便利店工作。

  • 有一份正经的工作、结婚生子,这是社会要求的普通、正常和规范。当惠子辞去便利店的工作后,她才真正意识到,便利店是自己真正的归属。

读书小结五

By: Juby
30 September 2024 at 22:33

锌皮娃娃兵

  • 入侵阿富汗的战争让苏联陷入泥淖,是其衰落和解体的重要原因之一,然而在我们的历史教科书上却没有对这场战争的描述。
  • 他们怀着成为英雄或为国效力的理想奔赴战场,却成为这场不义战争中的施害者和受害者,要么身体的碎片被装进棺材,要么被视为犯下暴行的罪人回到祖国。

人慈:橫跨二十萬年的人性旅程,用更好的視角看待自己

  • 将humankind译为人慈,既为该词的拆解式直译,又可切题,还谐音“仁慈”,当赞为妙笔。
  • 作者为了宣扬“人性本善”,似乎走入了另一个极端,要彻底否认“人性本恶”。他立了几个典型的靶子——戈尔丁的《蝇王》、复活节岛的故事、霍布斯的《利维坦》以及几个经典的心理学实验(斯坦福监狱实验、电击实验、旁观者效应、破窗理论等)——然后再用个别案例和他人研究把这些靶子一一打倒。然而,作者列出的论据却并不是那么有说服力,而是陷入了以具体否定抽象的奇怪驳论境地。
  • 为了否定《蝇王》,作者费劲千辛万苦在现实世界中找到了一个类似小说处境的真实故事,然后就说《蝇王》的故事在真实世界是不会出现的,只是戈尔丁恶意的想象,甚至以攻击戈尔丁的人格来证明自己的论点。对人性的解释难道也是数理逻辑吗,以一个反例驳倒一个命题。
  • 复活节岛的历史研究是错误的,心理学实验是动了手脚和无良媒体推波助澜传播的。至于那些精心挑选的展现人类的和善、仁慈、友爱、宽恕和团结的动人故事,也可以有别的解释。这差不多就是作者的全部论据了。为什么有那么多证明“人性恶”的实验却少有证明“人性善”的实验呢?
  • 作者想要宣扬“人性善”并没有问题,但为什么让全面否定“人性恶”的看法吗,妄图以一种宗教取代另一种宗教?当所有人都成了”人性善”教的教徒,世界就会充满爱与和平吗?
  • 我不相信人性善,也不相信人性恶,我觉得先天的人性是空白的,是被后天的环境和教育染上了各种颜色。
  • 这本书可以结合《人性实验》一起阅读,后者有前者所反驳的所有实验的介绍。

祈祷之海

  • 讨论哲学、人性、自我和宗教的科幻小说。
  • 科技和医学的进步会湮灭人性吗?
  • 一种有趣的未来科技(能够取代人类大脑的宝石——恩多利装置)可见于不同的故事。
  • 祈祷之海,是“我”从神的安慰中觉醒的故事。

白鳥の逃亡者

  • 女主角是拉cello的天才高中少女,和已婚的指挥家有婚外情;男主角是杀死了妻子和她出轨对象的普通上班族。两人在车站的一次意外相撞,却演绎出了一段彼此安慰和救赎的故事。
  • 无聊的小说,学日语的读物。

蝇王

  • 事先知道了这是一个影响深远的故事,反而没有带来什么震撼。
  • 译文佶屈聱牙,小说本身也有很多刻意的描写,读起来像是一部十八世纪或十九世纪早期的作品,不是很喜欢。
  • 最后一章,拉尔夫逃避杰克一群人的追杀时,很有代入感,不自觉地让人紧张起来,为他捏一把汗。

读书小结四

By: Juby
1 September 2024 at 10:16

大地上我们转瞬即逝的迅绚烂,是一本写给母亲的书,是一本自传。作者是越南移民,由母亲和外祖母抚养长大,书中带着歉意和爱意回忆着与母亲过往生活的点滴细节。为养家而被工作摧毁健康的母亲和她那对儿子时常带着粗暴的爱,体现出移民家庭在美国的生活之艰辛。外祖母对越南战争的回忆,提醒人们战争的伤痕永远无法消除。除了移民和越战元素,这本书也塑造了母亲和外祖母这两位勇敢而坚强的女性形象。

吉尔伽美什史诗,一部苏美尔英雄史诗,讲述了古代的王吉尔伽美什因好友恩启都遽死而意欲追求永生,历经千难万险却无功而返的故事。史诗中有大洪水的情节,应该是圣经大洪水的原版故事之一吧。

时代的喧嚣,是曼德施塔姆的自传、文论和书信的合集。自传讲述的重点不在自己,而是当时的社会环境和氛围,给人一种醉生梦死、穷奢极乐、风雨欲来的感觉。

重返天安門,是个人与六四的故事,有参与镇压的士兵,有受害者的母亲,有运动的学生领袖(离开的和留下的),也有未曾亲历的年轻一代。最后,还讲述了不为人知的成都屠杀事件。

青年变革者,是写梁启超的,通篇引用,看似旁征博引,实则枯燥至极。此书一点生气没有,一点己见没有,一点梁启超的魅力亦没有。烂书勿读。

死亡是一件孤独的事,装神弄鬼、莫名其妙的小说,除了名字一无是处。不要在这本书上浪费哪怕一分钟的时间,以我浪费了几个小时的经验之谈。

图床

By: fivestone
10 September 2023 at 13:31

趁着服务器搬家,打算把死掉很多年的摄影网站,重新恢复起来。把如今流行的自建图库程序看了一圈:piwigo、lychee……仍然没有哪个很靠谱。

其实我在浏览这些程序之前,并没有太多具体的需求,只是期待,快 10 年没看这类东西了,会不会有什么让我惊艳的产品。——并没有。而且,在体验每个程序时,都迅速地发现一些,让我觉得很不爽的点。于是,所谓自己的需求,就是在这个不断吐槽的过程中形成的。

除了最基本的

  • 便捷的上传
  • 并不是难看到很离谱的展示界面

之外,

如果,我要的是一个图床,那么我需要——

照片的 url 和我本地储存的目录结构和文件名是一致的,类似于

https://..../blog/20230909_1.jpg
https://..../blog/20230910_cat.jpg

而不是

https://..../21/27/4c1b46114f8.jpg

这样的东西。前者的文件名,在编辑文章时便于管理。而且,以后迁移图床时,可以统一替换图片 url 的前缀,实现无缝迁移。

如果,我要的是一个摄影作品的展示网站,那么我需要——

!!!不要在网页的任何地方,显示多余的 exif 信息!!!

感觉这十年来,所有的图库程序,都把心思花在,如何去识别各种图片格式的内嵌 exif,然后把它们各种花式归档、搜索、展示……展示在网页边角、在动态的弹出菜单、甚至悬浮在照片上面。——我不需要啊!谁要在摄影作品上,标明照片的 exif 是哪天拍的,甚至是哪天上传的啊!!我连标题都不想展示啊!

甚至,各路图库程序比拼的重点,已经变成了如何调用外部地图软件,然后把照片根据 GPS 信息显示在地图上。(翻白眼

如果,我要的是一个管理图片的工具,能够便捷地挑出一些照片来展示。那么我需要——

在一个相册里,可以便捷地拖动更改,照片之间的顺序。而不是靠手动修改文件名这种粗糙的排序方式。


没有。能够满足这些需求的哪怕其中之一的,都没有。有一些静态网站生成程序,能够把已经彻底整理好的照片,生成看着还行的展示网站。但与其一个个试过来,再试着根据自己需求去魔改各种瑕疵;我觉得我还是在 wordpress 上慢慢拼吧……

于是又变成了

打算做点啥 → 考察相关的工具 → 做不成,开始吐槽各种工具……


以及,在这些干扰下,想趁此机会整理从前照片的希望,大概又落空了……不仅仅是在一些照片里的人,我不想去回顾。也包括,在翻看以前照片时,仍然能够识别出的,自己当年用摄影的视角,去凝视世界的方式,以及对这种方式本身的思考和改变。——我现在是否适合,把这种方式,重新调用起来?

【Review】重新发现 双姝奇恋

12 June 2022 at 13:40

今年以来,《双姝奇恋》在多个小众电影节举行放映活动,并且在Apple、Amazon等主要流媒体平台播映。为什么这部电影能重新获得了观众的关注呢?

一、社群支持

去年年底,本片导演Maria Maggenti和制片人Dolly Hall发起网络众筹,靠着粉丝的支持,将这部电影进行修复,推出了高清版本。

值得注意的是,《双姝奇恋》的主创均为女性,剧情更是改编自导演的亲身经历。她们为社群发声,在创作中形塑酷儿文化。更为难得的是,经过二十多年的沉浸,她们不仅仍然活跃在影视姬圈里,而且成为了社群的中流砥柱。

导演是《忽然七日》的编剧,制片人的作品包括《喜宴》《High Art》,主演Laurel Holloman和音乐总监Elizabeth Ziff参与了经典美剧TLW,粉丝基础广泛而牢固。今年4月在纽约放映活动受到粉丝的热情回应,就是例证。

二、BLM之后

《双姝奇恋》能够重回观众视野,吸引年轻一代,除了角色本身的魅力,还有符合美国社会氛围的因素。

这部1995年上映的电影,描述了两位高中生——白人小T Randy与黑人高学历家庭女儿Evil的初恋故事。

在需要导演争取两位主演“头对头”出现在海报上的年代,这部独立电影无疑具有先锋性。“青春姬片”成为它首次上映后的标签。

随着欧美平权运动的发展,如今,女同电影已经不再稀奇。人们对LGBT议题的讨论,不只停留在外貌着装上,更深入到社会结构的层面。女性、有色人种与性少数群体站在了一起。BLM运动之后,非裔美国人在银幕上的能见度显著提升。跨种族的女性爱恋,由“禁忌”变为“可以讨论的事”。《双姝奇恋》符合了观众对这类跨种族性少数故事的期待。

《双姝奇恋》的重新发现,可以说是主创在当下的社会氛围中投石问路抛出的石子,“是否到了讨论这些问题的时候?”也可以说是观众对“少数”故事的选择。

【影评】爱意·绽放

26 April 2022 at 09:59

Love,Classified

今天中午看完。 想吐槽一下《爱意、绽放》这个译名,Classified在影片里指兼具社区广告与交友功能的App“分类布告栏”,是一部用网络平台包装的爱情轻喜剧。影片通过设计人物之间的联系推动故事发展,姬线简单甜蜜,角色好像生活在粉红泡沫中。


作家母亲在父亲去世后离开了5年,留下儿子扎克和女儿泰勒远走。因为心脏出过问题,她借着签书会回到家乡,想要修复亲情。

女儿泰勒性格像作家,强势而固执,经营一家精品花店。Z世代工读生面对工作似乎比她更加得心应手。在她的建议下,泰勒下载了“Classified”(分类布告栏)。

被“跳出两点一线的生活”帖子吸引,泰勒开始与网友“心脏是肌肉”聊天,相约见面。令她意外的是,原来这位网友是一位女性心脏科医生(也就是Q世代里的Dani)。两人很好聊,尽管泰勒之前没有和女生约会过。

为了寻找灵感体验生活,作家在高级酒店“钓鱼”,碰上了一位男士,让她想起了已故的丈夫。结果是,儿子没有意料到会突然看到母亲,母亲没有意料到上钩的是自己家儿子。

儿子的性格像父亲,温和包容。他是一位画家,正在为社区的书店创作墙壁装饰画的样稿。书店的女店员是一位聪明古怪的书虫,两人互有好感逐渐发展。

泰勒在工读生的助攻下与医生去海边浪漫约会,通过Classfied用文字确认了心意。泰勒不愿意理解母亲,哥哥成为了中间桥梁。泰勒告诉哥哥自己约会一名女医生之后,突然接到了母亲入院的电话。

一场戏剧冲突,孩子们发现陪在母亲身边的书店老板,女儿发现母亲的医生竟然是自己女友,母亲发现自己的医生与女儿情况不对。

在母亲的建议下,哥哥以在社区生活的普通人作为创作的主角。作家的签书会如期举行,女儿在最后时刻到达现场,在演讲中消解了所有矛盾。最后是一次聚餐,大团圆结局。

❌
❌