Skip to content

Instantly share code, notes, and snippets.

2023-11-17 08:37:28.504108+0900 0x20e Default 0x0 0 0 kernel: (IOAccessoryManager) IOPortTransportState::setActive(): [Port-USB-C@1: CC] active: YES (transportType: 1 [CC])
2023-11-17 08:37:28.504130+0900 0x20e Default 0x0 0 0 kernel: (IOAccessoryManager) IOPortTransportState::_updateTRMState(): [Port-USB-C@1: CC] Updating TRM state...
2023-11-17 08:37:28.504141+0900 0x20e Default 0x0 0 0 kernel: (IOAccessoryManager) IOPortTransportState::_updateTRMState_block_invoke(): [Port-USB-C@1: CC] *** UAAA ***
2023-11-17 08:37:28.504208+0900 0x20e Default 0x0 0 0 kernel: (IOAccessoryManager) IOPortTransportState::handleStateChange(): [Port-USB-C@1: CC] Handling state change...
2023-11-17 08:37:28.505077+0900 0x20e Default 0x0 0 0 kernel: (IOAccessoryManager) IOPortTransportState::setActive(): [Port-USB-C@1: USB2] active: YES (transportType: 2 [USB2])
@keigoi
keigoi / esp8266light.ino
Created November 14, 2023 04:02
Arduinoとサーボモーターで壁の照明スイッチを操作
// 記事:
// https://qiita.com/keigoi/items/8ea458e34173dc086e23#%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2-arduino
// Arduino Studio の設定方法:
// http://trac.switch-science.com/wiki/esp_dev_arduino_ide use esp8266 version 2.2
#include <Servo.h>
#include <ESP8266WiFi.h>
#define SERVO_OFF_PIN 4
G ==w==> G G ==w==> G
------- -------
π1.G ==w==> π1.G π2.G ==w==> π2.G
--------------------
G = π1.G +p π2.G ==w==> G1 +p G2 = G
where subj(w) \cap subj(π1) U subj(π2) = \emptyset
@keigoi
keigoi / Cy.hs
Last active October 20, 2022 03:48
moved to https://github.com/keigoi/haskell-cy/blob/main/Cy.hs
From mathcomp.ssreflect Require Import all_ssreflect.
Ltac injection_top :=
match goal with
| |- ?x = ?y -> _ =>
first
[ by discriminate
| is_var x; move=>?
| is_var y; move=>?
| move=>[]
@keigoi
keigoi / rectype.ts
Last active November 5, 2020 06:27
type Global = {[L:string]:Local}
type Local = {kind:string; role:string, bra:{[L:string]:Local}}
type Keys<T extends {[L:string]:{}}> = T extends infer U ? keyof U : never;
type Assoc<T extends {[L:string]:{}}, K extends string> = T extends unknown ? K extends keyof T ? T[K] : never : never;
type Force<T extends Local> =
[T] extends [Local]
? {kind:T["kind"], role:T["role"], bra:{[X in Keys<T["bra"]>]: Force<Assoc<T["bra"], X>>}}
: never
type Comm<R1 extends XS, R2 extends XS, XS extends string, T extends {[L:string]:Global}> =
@keigoi
keigoi / nested_bogus.ts
Created October 15, 2020 23:14
TypeScript strange behaviour in nested conditional types
type GetFoo<T> = [T] extends [{foo:infer R}] ? R : never;
type Foo = GetFoo<{foo:"A"}> // "A"
type GetFoo0<T> = [T] extends [{foo:string}] ? [T] extends [{foo:infer R}] ? R : never : never;
type Bogus = GetFoo0<{foo:"A"}> // unknown ???
// to remedy this, use indexed type T["foo"]
@keigoi
keigoi / equal.ts
Created October 13, 2020 02:57
TypeScript type equality and union types
// returns the intersection of all elements in the union T
// i.e. ToIntersect<T1 | T2 | .. | Tn> = T1 & T2 & .. & Tn
type ToIntersect<T> = (T extends unknown ? (x:T) => void : never) extends (x:infer U) => void ? U : never;
// check if T and U are equal
// Here, ([T] extends [U] ? _ : _) suppresses union distribution.
// See: https://github.com/microsoft/TypeScript/issues/29368
type Eq<T,U> = [T] extends [U] ? [U] extends [T] ? true : false : false;
// check if all elements in the union LS are equal by using (T & U) = (T | U) iff T = U
@keigoi
keigoi / DualWork.java
Last active September 20, 2020 12:14
Session Type Duality in Java
import java.util.function.Consumer;
import java.util.function.Function;
public class DualWork {
// セッション型
public static class End{
public End() {}
public void close() {}
}
public static class Send<CONT> {