Skip to content

Instantly share code, notes, and snippets.


Yoshimasa Niwa niw

  • San Francisco, CA
  • @niw
View GitHub Profile
niw /
Last active Jan 18, 2021
How to run Windows 10 on ARM or Ubuntu for ARM64 in QEMU on Apple Silicon Mac

ARM 版 Windows 10 や Ubuntu for ARM64 を Apple Silicon な Mac で動かす

ARM 版 Windows 10 や Ubuntu を Apple Silicon な Mac で動かす簡単な方法です。

メモ: 2020年12月19日現時点での方法で、今後おおきく改善されていくと思います(だといいな。)

ARM 版 Windows 10 を動かす

  1. Xcode を App Store で、あるいは Command Line Tools を Apple Silicon な Mac にインストール
niw /
Last active Jan 7, 2021
macOS Big Sur Icon Template for Affinity Photo

macOS Big Sur Icon Template for Affinity Photo


Open it in Affinity to create new Icon. It has template for each size that developer need to create (not all,) also exporting settings for all sizes.

niw /
Last active Aug 28, 2020
Swift の swift-corelibs-foundation を Windows で手軽にビルドするためのメモ

Swift の swift-corelibs-foundation を Windows で手軽にビルドするためのメモ

ここ に移動しました。

niw /
Last active Jun 28, 2020
UITextView accessibility is unique

UITextView and Accessibility


isAccessibilityElement は Voice Over などが稼働して、UIKit.axbundleが読み込まれて始めて true になる。

  • See also:
    • -[UITextViewAccessibility isAccessibilityElement] (UIKit.axbundle)


niw /
Last active Jun 21, 2020
Text View の内容を変更したりすると Undo でクラッシュしたりする原因はこれ

特定のタイミングで setText: すると Undo がおかしくなる、場合によってはクラッシュする問題

  • setText: などの変更は、Text Storage の NSTextStorageDidProcessEditingNotification によって、undoManagergroupingLevel0 の時だけ removeAllActions を呼ぶ。
  • groupingLevel はキーボードから入力があった時は RunLoop が終わらないと 0 にならない。
  • キーボードから入力したときには、coalesceInTextView:affectedRange:replacementRange:replacementText: で、 まず最初に undoManager に Text Storage を target_UITextUndoOperationTypingobject にした Undo が登録される。
  • 次回の入力以降、coalesceInTextView:affectedRange:replacementRange:replacementText: では、 NSUndoManager_shouldCoalesceTypingForText:: (これは::二回で正しい、2つめの引数は名前がない。) を呼んで、 前回の_UITextUndoOperationTyping に変更を追記する方法で入力の Undo を結合するか、新しい Undo を登録するか決めている。 改行の直後などでは新しい Undo が追加される。
niw /
Last active May 25, 2020
Describes why `RTIDocumentState` crashes your app.

RTIDocumentState and related method calls can crash app. Why?

Short version

A pointer to RTIDocumentState is read and written on multi threads.

Long version

When the application launches, it establishes XPC connection with so called RTIInputSystemService and creates a RTIInputSystemServiceSession.

niw / TextView.swift
Last active May 23, 2020
`textInputMode` is not working on iOS 13.0 to iOS 13.3.
View TextView.swift
final class TextView: UITextView {
private var preferredTextInputModePrimaryLanguage: String?
Use given primary language for the preferred text input mode when next time text view becomes first responder.
- Parameters:
- primaryLanguage: `String` represents a primary language for the preferred text input mode. Use `"emoji"` to use Emoji keyboard.
func usePreferredTextInputModePrimaryLanguage(_ primaryLanguage: String) {
preferredTextInputModePrimaryLanguage = primaryLanguage
niw /
Last active May 18, 2020
`netlify-cli` knwon issues

netlify-cli known issues

A memo about netlify-cli. Too lazy to file issues or create pull requests for now.


Looks like it has no ability to read headers in netlify.toml

niw / a.c
Last active Apr 28, 2020
Demonstrate how iCloud Drive is surprisingly unreliable.
View a.c
#include <stdio.h>
#include <time.h>
#include <unistd.h>
This super simple C code demonstrates how iCloud Drive is unreliable.
Obviously, this code is creating a temporary file first, then creating a backup then rename it to original one.
This is actually used in [OBS Studio]( settings file writing.
Build this command with `clang`,
You can’t perform that action at this time.