Measure per-letter dimension of text in JavaScript

TL;DR: Create a Range, set proper start and end points up to the text node with proper offset, then use Range.getBoundingClientRect() to get the dimensions.

As a part of the Lyricova Jukebox, we wanted to support inline karaoke swipe animation. With the time tags in the data, it is easy to figure out the time when the animation must reach a certain character. Then we need to figure out a way measure per character dimension for the animation to work.

How LyricsX keeps track of progress of media players

LyricsX is an open source software for macOS to download and display lyrics of current playing track on Music (previously iTunes), Spotify, Audirvana, Vox, Swinsian, or the Now Playing indicator in the OS. It gets time-tagged lyrics files from local storage or internet, and then display the lyrics in sync with the player.

As a crucial component of the development of Lyricova Jukebox, I have researched multiple implementations of real time lyrics display programs, and I found the mechanism behind LyricsX particularly interesting. Here in this article, I’d share with you how LyricsX tracking the player progress in a unique and resource-saving way.

中西文混合排版中标点符号的渲染

本文又是一篇从 Telegram 的投票评语里面引申出来博文。不知不觉发现这一话题写了很长,就索性再添上一些写进这里。我们不争论我们是否「应该」在中文里面用弯引号云云。如果没有硬性规定,按个人偏好就好。

首先,不同于大部分中文/全角标点,Unicode 里面有一些常用的中文标点是和西文中同样作用的标点共享相同的码位的:

一只菜鸡关于《Project NANO》的解谜记录

经过几手转发,从 Telegram 上面发现了一个解谜游戏,名叫《Project Nano》。至于它是什么《Nazo: Phi Project》的回应云云的一系列经纬我也不得而知了。当然,至于为什么要叫做「不完整解谜记录」,单纯是因为俺太菜,卡了不知多少次关,而且(暂时还)没有解出来而已。就是这样。感谢各位大佬的倾力提示(有时候差点答案就出来了)终于完成了这个记录。

其实本来还想过要不要用英文写这篇文章,后来想了想题目都是中文的,翻译起来还麻烦,就还是用中文好了。

『初音ミクの消失』に関するプチ考察

『初音ミクの消失』はボカロ曲と出会って8年間で一番多く聞いたり、歌ったりしてる曲です。この曲は僕の成長と伴っていくつかの月日を経った。今でも、あの「信じたものは、都合のいい妄想を繰り返し映し出す鏡」は僕のサブ座右の銘的な存在担ってるんだ。

日本語能力はまだまだなので、お見苦しいところは申し訳ありません。もし良ければコメント欄でご指摘いただければ幸いです。

数字:「兆」与万位分隔符

前段时间在某群里聊到了这个话题,感觉蛮有意思的,所以拿出来讲一下。即使中日韩范围里面,数字的写法其实并不尽相同。只有「一」到「一万」这一部分应该可以很安全的说是「没有异议」的。其他的地方都会或多或少的有一些歧义存在。

Switch Galaxy Wearable Store Location using XPrivacyLua

Update 6 July 2020: Added alternative method using Riru Location Report Enabler.

Galaxy Wearable Store (GWS) is the app store for Galaxy wearable devices of Samsung. GWS is strongly region-dependent, just like other aspects of the device (you have to do some software hacking for a device purchased in one region to use Samsung Pay in another region). Being able to run with non-Samsung devices means that it cannot rely on the region-of-sale on the phone (and for some reason they didn’t choose to use the region of the device), GWS decided to use the region of your SIM card on the device to determine the store location.

Monitor Connected Devices to an ASUS Router Using Raspberry Pi

Title should have explained it all. A simple Python script to monitor if a certain device has connected to the router via Wi-Fi, and send notifications accordingly. You can use this script for whatever purpose you want2I used it to monitor whether my parent has left home when I am “seemingly asleep”. , though probably you might not be able to find one like most of others.

To use this script, you need SSH access to the router, something in your LAN that is always running (in my case, a Raspberry Pi), and the list of MAC addresses to monitor. In this example, I am using an Asus RT-AC1200GU as the router. Other brand or make might need a different command.