Skip to content

Instantly share code, notes, and snippets.

Avatar
🐱
Meow

Yoshimasa Niwa niw

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

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
niw / README.md
Last active Jan 7, 2021
macOS Big Sur Icon Template for Affinity Photo
View README.md

macOS Big Sur Icon Template for Affinity Photo

Usage

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
niw / swift_corelibs_foundation_windows_build-ja.md
Last active Aug 28, 2020
Swift の swift-corelibs-foundation を Windows で手軽にビルドするためのメモ
View swift_corelibs_foundation_windows_build-ja.md

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

ここ に移動しました。

@niw
niw / UITextView_and_accessibility.md
Last active Jun 28, 2020
UITextView accessibility is unique
View UITextView_and_accessibility.md

UITextView and Accessibility

isAccessibilityElement

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

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

isEditable

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

特定のタイミングで 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
niw / why_RTIDocumentState_crashes_the_app.md
Last active May 25, 2020
Describes why `RTIDocumentState` crashes your app.
View why_RTIDocumentState_crashes_the_app.md

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
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
niw / netlify_cli_knoen_issues.md
Last active May 18, 2020
`netlify-cli` knwon issues
View netlify_cli_knoen_issues.md

netlify-cli known issues

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

Headers

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

@niw
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](https://obsproject.com/) settings file writing.
Build this command with `clang`,
You can’t perform that action at this time.