Earlier I decided to use the normalized form “tptq-feacomposer” as the package name for “tptq.feacomposer”. Now I realized that the former is really for package managers, and users should be consistently presented with the dotted import name, but PyPI is stuck. 🫠 Crossposted with @openvibe.social
梁海 Liang Hai
梁海 Liang Hai
@lianghai.dev
https://lianghai.dev (That’s the Slow Horses staircase in the banner pic, in case you were wondering.) #Unicode #OpenType #Python #TypeScript #Svelte #Astro #Swift
144 followers209 following52 posts
梁海 Liang Hai reposted
We started the Diplomat Rust FFI project as a way to scale ICU4X (a Rust library) to many target languages. Since then, multiple other clients have discovered Diplomat, and through the magic of open source, we have new targets including Kotlin and Python. You should consider using Diplomat, too!
Finally wrote my blog post about Diplomat I should have written this ages ago, but better late than never manishearth.github.io/blog/2026/06...
harfbuzzjs, HarfBuzz’s Wasm build and JS bindings, has released the first beta after the recent major refactoring (I’ve been contributing some ideas): TypeScript, ESM, JS classes, automatic memory management for Wasm, … Go give it a try! github.com/harfbuzz/har... (Also available on npm.)
If you use harfbuzzjs (or if you didn’t know you could use HB in JS), have a look at this PR github.com/harfbuzz/har... where Khaled is rapidly converting the project to TS and ESM based on suggestions from a long standing issue (github.com/harfbuzz/har...).
Apparently I’ve been incorrectly claiming on my website that I’m a vice-chair of the Script WG, due to an editing error: lianghai.dev 🫠
The node-based, procedural design tool Graphite’s talk at FOSDEM has its recording online now: fosdem.org/2026/schedul...
梁海 Liang Hai reposted
@atila.io, after our brief chat, I realized that it’s quite unusual for you guys to have to deal with bidi issues from the level of Solid or SolidStart. Can you have a look at this article from W3C and elaborate a bit about what exact problems you guys are facing? www.w3.org/Internationa...
@danielroe.dev, it was great to meet you and climb together! – So about the font subsetting situation: - The current best practice is likely HarfBuzz (HB)’s subsetting API (harfbuzz.github.io/harfbuzz-hb-...), which is written in C++ and has a CLI, hb-subset (harfbuzz.github.io/utilities.ht...).
- Likely irrelevant to you, but fyi, the corresponding solution in Python (the font industry’s common language) is maintained by pretty much the same group of developers in fontTools: glyph set subsetting (github.com/fonttools/fo...) + design space subsetting (github.com/fonttools/fo...).
- On the other hand, Google Fonts has been porting tools to Rust. You can read about their roadmap here: github.com/googlefonts/..., where klippa is mentioned as a replacement of hb-subset. - You should also keep an eye on the progress of the Incremental Font Transfer effort: www.w3.org/TR/IFT/.
@danielroe.dev, it was great to meet you and climb together! – So about the font subsetting situation: - The current best practice is likely HarfBuzz (HB)’s subsetting API (harfbuzz.github.io/harfbuzz-hb-...), which is written in C++ and has a CLI, hb-subset (harfbuzz.github.io/utilities.ht...).
- Fonts are complicated. Don’t trust naive solutions that are not backed by HB developers. - HB has a WASM-based JS lib, harfbuzzjs (github.com/harfbuzz/har...), which is currently maintained in a quite confusing way and can use some help from professional TS developers (github.com/harfbuzz/har...).
梁海 Liang Hai reposted
you can sponsor @e18e.dev through GitHub Sponsors or OpenCollective these funds will primarily be used for two things: - distributed to projects/individuals in the wider JS community - development of community projects/tools thanks so much to those of you who already sponsor us 💙
梁海 Liang Hai reposted
Yesterday was CourtBouillon 5-year anniversary 🎂 As each year, we take some time to see what happened during the year on the projects (features, money…), and to draw the path for the next one. Here’s the rewind of this year! ↘️ www.courtbouillon.org/blog/00059-f...
梁海 Liang Hai reposted
Want to meet the Astro core team? Come join us for some drinks and a chat in Amsterdam on Saturday — sponsored by @netlify.com! Register here: luma.com/fbmyfx30
A panel chat after the Vite documentary’s premiere today at #ViteConf, featuring @antfu.me or “The Fu”, among others.
梁海 Liang Hai reposted
"Let's hear it for the UN of Javascript! Vite: The Documentary is finally here. If you missed the premiere, it's OK!!! Here's the link so you can watch it again, and again and again. youtu.be/bmWQqAKLgT4 "
Really impressive how bad this is. Reeks of US corporate superficiality. Even worse than Unicode Consortium’s rebranding some year ago. www.w3.org/press-releas...
Fucking hell. Turned out I’m not insane – indeed Safari and Chrome do blend mode calculation in the display’s color profile, not sRGB: danielcwilson.com/blog/2020/03...
梁海 Liang Hai reposted
In one month, Node.js 18 reaches EOL. Vite and a lot of your dependencies will release majors requiring Node.js 20+. Please update as recommended now so you are prepared to jump into greener fields. Vite 4 will also stop receiving security patches after the next major, so please jump to latest too 🙏
New @nodejs.org 18.20.8 release. This is the last planned release of Node.js 18 before it reaches End-of-Life at the end of April 2025. You are recommended to update to Node.js 20 or 22 to continue to receive security updates after that date. nodejs.org/en/blog/rele...
梁海 Liang Hai reposted
梁海 Liang Hai reposted
梁海 Liang Hai reposted
The article I wrote at the end of last year was just republished on the official Astro blog! Big thanks again to @sarah11918.rainsberger.ca for reaching out 🙏
2024 was a big year for Astro! Join us in looking back at everything we achieved together 🧑🚀 astro.build/blog/year-in...
梁海 Liang Hai reposted
I _believe_ that www.viamichelin.com, a SvelteKit app, came first. Though since michelin.com uses Astro with Svelte, we can't be too mad. (I guess we're the first framework with two Michelin Stars?) Anyway, welcome to the club ⭐
⭐️ michelin.com/en now on Astro. Does this make us the first Michelin Star framework?
梁海 Liang Hai reposted
Oracle justified its JavaScript trademark by claiming Node.js — now it wants that ignored #FreeJavaScript deno.com/blog/deno-v-...
梁海 Liang Hai reposted
New Article about the story and interconnectedness of the three Mediterranean cultures that led to the creation of La Grotesque. tptq-arabic.com/articles/the...
梁海 Liang Hai reposted
Hello! Our first post on here is an account on why we decided to stop publishing and promoting typefaces for a while. tptq-arabic.com/blog/after_t...
梁海 Liang Hai reposted
梁海 Liang Hai reposted
Want to use Rust in JavaScript? Increase performance in the browser? Here's an intro to using Wasm with Deno. deno.com/blog/intro-t...
梁海 Liang Hai reposted
Our in-house cognitive scientist Héctor Mangas Afonso will be speaking tomorrow at the AIGA Los Angeles about the Type Design for Low Vision Readers. You can get your tickets here: www.eventbrite.com/e/type-desig...
梁海 Liang Hai reposted
I had an amazing time at Face/Interface 2025, put on by @stanfordsilicon.bsky.social this weekend. So many great talks! I was struck by something @tsmullaney.bsky.social said — “Privilege is the ability to move onto ‘cooler problems.’” Let’s talk about that! 1/10 #langsky #language #technology 🧵🪡
梁海 Liang Hai reposted
In December, we co-published a video together with Heiltsuk Revitalization to describe the work that we did together to add two new capital letters to the Unicode Standard for their language. To describe this effort in more detail, please read our blog post: www.typotheque.com/blog/new-uni...
梁海 Liang Hai reposted
🎉 OMG OMG OMG Chrome is shipping CSS attr() for every property!!! 🎉 I’ve been asking for this for over a decade!! w00t!!! 🤩 developer.chrome.com/blog/advance...
梁海 Liang Hai reposted
梁海 Liang Hai reposted
梁海 Liang Hai reposted
梁海 Liang Hai reposted
Finalizing #fontstandcon2025! Tobias Frere-Jones recounts the research and design process behind New York City Football Club’s new family of typefaces. The city’s history becomes the material for the identity of a modern sports team, and a bond with citizens and fans. fontstandcon2025.eventbrite.com
梁海 Liang Hai reposted
梁海 Liang Hai reposted
Cloudflare sharing how they used Starlight to up their open-source docs game 🌟 blog.cloudflare.com/open-source-...
梁海 Liang Hai reposted