Skip to content
View NoaLand's full-sized avatar
🎯
Focusing
🎯
Focusing

Organizations

@test-automation-training @ScriptoriumLab

Block or report NoaLand

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
NoaLand/README.md

Edward NoaLand

Ruipeng Wang

C++ · Systems Programming · Software Architecture

📍 London, UK


Building systems that are understandable, evolvable, and able to survive their own success.



Today's design becomes tomorrow's constraint.
Good design leaves tomorrow with more possibilities.


What I'm building

Scriptorium

Scriptorium is an experimental, cross-platform input method framework.

It started as a Windows input method and gradually evolved into a multi-process architecture, separating platform integration, input method logic, UI, and shared infrastructure.

The project is also where I explore a broader question:

How can a system evolve without letting today's implementation decisions unnecessarily constrain its future?

Current focus

C++
Windows TSF
IPC
Multi-process
Architecture

Scriptorium architecture evolution

Scriptorium has evolved from a Windows-specific input method into a multi-process, cross-platform architecture.
Read the full architecture evolution →

Scriptorium ecosystem

brush

Platform integration
Currently Windows TSF

inkstone

Input method core

ink

Stateless UI

felt

Shared foundation
and infrastructure

cli

Command-line tooling
for the ecosystem

Explore ScriptoriumLab →


cxx-reflection

cxx-reflection is an ongoing collection of experiments around reflection and compile-time programming in C++.

I use it to explore the language itself: what can be expressed at compile time, where abstraction becomes useful, and where it starts becoming a constraint of its own.

The project is still in progress. Most of my recent development time is currently going into Scriptorium, but I intend to keep evolving these experiments alongside it.

Exploring

Reflection
Compile time
Type systems
Modern C++

View repository →


What I care about

Engineering

  • Modern C++
  • Systems programming
  • Performance and resource ownership
  • Platform integration

Design

  • Software architecture
  • Programming languages
  • Developer tooling
  • Evolutionary design

I tend to care less about finding the perfect architecture and more about understanding the trade-offs a design introduces.

A design is never free.
Every abstraction makes some things easier and other things harder.

The interesting part is choosing deliberately.


Translation

I have worked on Chinese translations of several technical books:

  • C++ High Performance
  • Effective TypeScript
  • Wild West to Agile
  • Introducing C++in progress

Writing

I occasionally write about software engineering, architecture, and C++.

Engineering & architecture

C++


Elsewhere

GitHub   ·   LinkedIn   ·   Substack


Build for today. Leave room for tomorrow.

Pinned Loading

  1. ScriptoriumLab/scriptorium-brush ScriptoriumLab/scriptorium-brush Public

    The Windows TSF platform adapter for Scriptorium, translating between native text services and the platform-independent input method core.

    C++

  2. ScriptoriumLab/scriptorium-inkstone ScriptoriumLab/scriptorium-inkstone Public

    The stateful core engine of Scriptorium, responsible for composition, segmentation, candidate generation, ranking, and dictionary access.

    C++

  3. ScriptoriumLab/scriptorium-ink ScriptoriumLab/scriptorium-ink Public

    The stateless presentation layer for Scriptorium, rendering candidate windows and input-method state independently from the core and platform adapters.

    Rust

  4. ScriptoriumLab/scriptorium-felt ScriptoriumLab/scriptorium-felt Public

    Foundational infrastructure, IPC primitives, and shared protocols for the Scriptorium input method framework.

    C++ 1

  5. ScriptoriumLab/scriptorium-cli ScriptoriumLab/scriptorium-cli Public

    A developer CLI for building, testing, diagnosing, and running the Scriptorium cross-platform input method framework.

    Go

  6. cxx-reflection cxx-reflection Public

    [In Progress] My open cxx reflection library

    C++ 8