利用字型來判斷使用者是否有安裝特定軟體

Hacker News 上的「TeamViewer installs suspicious font only useful for web fingerprinting (ctrl.blog)」這邊看到的技巧,原文在「TeamViewer installs suspicious font only useful for web fingerprinting」這邊,但文章標題本身可以忽略。

這別提到的方法是,在安裝軟體時額外安裝一個特別的字型,然後網頁就可以透過 javascript 判斷這個字型存不存在,來得知使用者是否有安裝自己的軟體,接下來就可以走到不同的 flow:可以導引使用者下載軟體,或是透過 handler 拉起應用程式。

不過這也透漏出了隱私問題,代表廣告商可以利用這點取得 fingerprint,而不只是軟體自家的網站。

看討論串裡面說 Firefox 上可以用 privacy.resistFingerprinting 擋住:「Firefox's protection against fingerprinting」,但 Firefox 本身也沒有說明的太清楚到底會放行哪些字型:

Not all fonts installed on your computer are available to webpages

在「Security/Fingerprinting」這頁則是:

We only allow specific system fonts to be used, and we ship them to the user using kinto

直接試著找 Bugzilla 與 source code 的資料可以翻到「Restrict CSS font visibility to standard fonts only when privacy.resistFingerprinting is true」這個討論,裡面有提到「https://searchfox.org/mozilla-central/search?path=StandardFonts*.inc」這個,可以看到有 LinuxmacOSWindows 10 下的清單。

不過 Chromium-based browser 下目前好像沒看到方案...

Victor Mono 字型

本來是在 Hacker News 上看到「MonoLisa – A font designed for developers (monolisa.dev)」這個付費字型,但下面的討論反而提到了一些其他還不錯的 open source 的字型,其中一個就是這邊提到的 Victor Mono

另外有提到「Programming Fonts - Test Drive」這個站,可以測很多不同的 Monospace 字型,看起來也可以翻翻...

另外一個 monospace 的字型 Hera

Lobsters Daily 上看到的字型 Hera

Source Code Pro 為主,混入了 Fira MonoInconsolataIBM Plex Mono

Hera is a monospace font which is a customised version of Source Code Pro which was originally created by Paul Hunt.

Hera consists mainly of glyphs from Adobe Source Code Pro mixed with glyphs from popular monospace fonts like Fira Mono, Inconsolata, IBM Plex Mono, etc.

Hera emphasises readability and uniformity for sigils and symbols which makes it suitable for use in coding environments.

GitHub 上有 screenshot 可以參考:

以及:

用了幾天還可以,應該會繼續用,放入常態性的替換清單... (我同一個字型看久了會想換)

新世紀福音戰士的字型

沒想到在 Hacker News 首頁上看到第一名居然是這個連結:

2019 年的文章:「Neon Genesis Evangelion」,找資料的時候發現有簡體中文版的翻譯:「末世感叩击:《新世纪福音战士》的文字世界」。

這些字型是由日本的 Fontworks 所開發出來的 Matisse EB,在片尾的 credit 也可以看到「株式会社フォントワークスジャパン」:

主要是沒想到會在 Hacker News 首頁上的第一名看到這個...

挑 Coding 字型的網站

Hacker News Daily 上看到「Coding Font by Typogram – Find Your True Love of Coding Fonts」這個,可以直接用二選一的方式挑出自己喜歡的 coding 的字型...

不過我的習慣是偶而就會換個字型,對我來說更有用的是字型列表,另外網站也提供了界面可以看:

  • Anonymous Pro
  • Azeret Mono
  • B612 Mono
  • Courier Prime
  • Cousine
  • Cutive Mono
  • DM Mono
  • Fira Code
  • Fira Mono
  • IBM Plex Mono
  • Inconsolata
  • JetBrains Mono
  • Major Mono Display
  • Nanum Gothic Coding
  • Noto Sans Mono
  • Nova Mono
  • Overpass Mono
  • Oxygen Mono
  • PT Mono
  • Roboto Mono
  • Share Tech Mono
  • Source Code Pro
  • Space Mono
  • Syne Mono
  • Ubuntu Mono
  • VT323
  • Xanh Mono

裡面有些字型以前連用都沒用過,看起來可以找來用看看... 不過看了一輪發現有些字型應該不是為了 coding 用的,像是 Space Monofixed 就會把 fi 連在一起而且只佔一格:

然後我自己用 15px 玩了一輪選到了 Azeret Mono,看起來可以裝起來用看看...

LaTeX 的字型展示

Hacker News 首頁上看到「The LaTeX Font Catalogue (tug.org)」這個,提到 LaTeX 的字型:「The LaTeX Font Catalogue – Front Page」。

在 Hacker News 上的討論有人提到 LaTeX 的字型印出來很好看,但電腦上看就還好 (不差),這點我還蠻認同的,在螢幕上有其他更好看的字型可以用。

就目前看過的書籍來說,TeX 預設的字型 (Computer Modern 系列) 印出來真的超漂亮的,像是 Knuth 老大的 TAOCP

話說 Knuth 老大的 TAOCP... (說好不提 261?)

4px 寬的字型

也是在 Hacker News Daily 上看到的:「a pretty sweet 4px wide pixel font.」,看 commit log 似乎很久了,字本身長這樣:

作者有提到可以用在解析度不夠的螢幕上,馬上想到的是「Waveshare 3.2 inch Raspberry Pi LCD 320X240 Resistive Touch Screen TFT Display SPI LCD for Raspberry Pi 3 Model B/3B+/2 B/B/A Raspbian IMG Provided」這種東西:

另外用在小顆 LCD 單色顯示似乎也是個方法,不過看了一下是 5px:

出自「Real Time Clock On 20x4 I2C LCD Display with Arduino - Electronics-Lab.com」。

先記起來...

挑選開發者用的 Monospace 字型

Hacker News Daily 上看到的網站,直接使用對應的字型,讓使用者可以直接感覺:「Dev Fonts」。

目前上面有 33 種字型,大多都是免費的 (目前上面只有看到 Dank Mono 是收費的字型)。

在頁面上可以換 theme,以及選擇不同程式語言的 syntax highlighter,另外下方範例的程式碼也可以自己修改,這些都是讓使用者模擬實際的感受。

一些懷古的點陣字型

前幾天在 Hacker News 上看到的懷古字型:「The Ultimate Oldschool PC Font Pack」,在「FONT INDEX」這頁裡面有很多字型的圖片可以看。

比較有趣的是在「README」這頁提到的版權問題,點陣字體在美國是無法被版權化的:

Q. Is this even legal? The original fonts are not yours. Do you have the right to distribute these versions?

A. Short answer: as far as I was able to research, there is nothing illegal or infringing about this collection. The raw bitmap typefaces are not copyrightable, unlike fonts in specific formats such as .fon and TrueType (which qualify as software); at least this is the case in the US, where this site is based. For a longer and far more boring answer, see the legal stuff section below.

這點可以在維基百科上的「Intellectual property protection of typefaces」這篇看到對應的說明:

Typefaces cannot be protected by copyright in the United States (Code of Federal Regulations, Ch 37, Sec. 202.1(e); Eltra Corp. vs. Ringer). The idea that typefaces (rather than fonts, which are computer software) cannot be copyrighted in the United States is black letter law. 37 C.F.R. § 202.1(e). Under U.S. law, typefaces and their letter forms or glyphs are considered utilitarian objects whose public utility outweighs any private interest in protecting their creative elements. However, there is a distinction between a font and a typeface. The machine code used to display a stylized typeface (called a font) is protectable as copyright. In 1992, the US Copyright Office determined that digital outline fonts had elements that could be protected as software. Since that time, the Office has accepted registration of copyright for digital vector fonts, such as PostScript Type 1, TrueType, and OpenType format files.

有不少字型有提供 8x16 的大小,看起來之後還是可以找機會用看看?應該有機會搭 16px 的中文字...