Skip to content

Instantly share code, notes, and snippets.

Avatar
🐢
on going

yoh yohhoy

🐢
on going
View GitHub Profile
@Kestrer
Kestrer / how-to-write-hygienic-macros.md
Created Oct 17, 2020
A guide on how to write hygienic Rust macros
View how-to-write-hygienic-macros.md

How to Write Hygienic Rust Macros

Macro hygiene is the concept of macros that work in all contexts; they don't affect and aren't affected by anything around them. Ideally all macros would be fully hygienic, but there are lots of pitfalls and traps that make it all too easy to accidentally write unhygienic macros. This guide attempts to provide a comprehensive resource for writing the most hygienic macros.

Understanding the Module System

First, a little aside on the details of Rust's module system, and specifically paths; it is

@mattn
mattn / README.md
Last active Jun 18, 2021
blacklist/whitelist master/slave に関する情報集め
View README.md

blacklist/whitelist master/slave に関する情報集め

blacklist/whitelist、master/slave という単語は相応しくないという意見に OSS がどの様に対応すべきかを自身で考える為の情報集めです。見つけ次第、逐次更新していきます。

僕(mattn) 自身は black lives matter に同意をしています。blacklist/whitelist、master/slave という単語を廃止する事が、歴史的背景を持たない文化圏では特定の意味を持たなかった為、個人的には若干思う所はありますが、廃止自身に反対するつもりはありません。

昔から、主副を表す物には master/slave という単語が使われてきました。ハードディスクの IDE、仮想端末(pty)、色々あります。またネットワークの IP フィルタリングに関しては blacklist/whitelist と表記した物が今でも沢山あります。

我々日本人が意識せずに使っていた blacklist/whitelist、master/slave という単語が、人々にどの様に影響しうるのか、今後 OSS としてどの様に関わっていけば良いかを理解する上で、自分なりの情報集めをしたいと思っています。

@pandaman64
pandaman64 / memory_model.md
Last active Dec 18, 2020
papers on formalized memory models
View memory_model.md

色々メモリモデル

コンパイラ(LLVM)のメモリモデル

Reconclining high-level optimization and low-level code in LLVM (https://dl.acm.org/doi/10.1145/3276495)

Lee, Hur, Jung, Liu, Regehr, Lopes.

  • 低レベル言語(C, C++, Rust)のコンパイラのメモリモデルには二つの相反する目標がある
    • high-level optimization
      • 最適化したい
      • 例:
View sudobread
____-------____
__-- --__
/ \
\ _--_ _--_ / あなたはシステム管理者から通常の講習を受けたはずです。
| ,--. ,--. | これは通常、以下の3点に要約されます:
| |()| |()| |
| _______ | #1) 他人のプライバシーを尊重すること。
| \ ||| / |
| `---' | #2) タイプする前に考えること。
@MattPD
MattPD / cpp.std.coroutines.draft.md
Last active Aug 27, 2021
C++ links: Coroutines (WIP draft)
View cpp.std.coroutines.draft.md
@voluntas
voluntas / sora_labo.rst
Last active May 21, 2021
時雨堂 Sora Labo 開発ログ
View sora_labo.rst

時雨堂 Sora Labo 開発ログ

日時:2021-04-05
作:時雨堂
バージョン:2021.2
URL:https://sora-labo.shiguredo.jp/

このサービスに興味がある人はこの資料に Star をつけてもらえると嬉しいです。

@qnighy
qnighy / rust-patterns.md
Last active Jun 30, 2021
Rustのパターンっぽいやつメモ
View rust-patterns.md

パターンとはその言語が抽象化できなかった敗北の歴史である。 しかしどんなに優れた言語であってもあらゆる繰り返しに勝てるわけではない。 人は必ずメタ繰り返しを欲するからだ。 そしてそれはRustも例外ではない。

ここでは、OOPでも知られているパターンよりも、Rustに特有のパターンを思いつく限りまとめてみた。名前は適当。

  • crate splitting
    • でかいcrateを分割して、見通しを良くする・再コンパイルの分量を削減する・並列コンパイルを可能にする
    • 親玉crate(全てにdependする)と殿crate(全てにdependされる)があることが多いので、だいたい束みたいな形になる。
@ksasao
ksasao / detect_marker.py
Last active Jul 18, 2021
ZOZOSUITのマーカーのIDを読み取るコードです。公開されている画像を元に独自に解析しているので、公式ではこのように処理しているかどうかは不明です。仕様等については https://twitter.com/ksasao/status/990779583682170881 のスレッドも参照してください。全身を読み取るコード https://twitter.com/ksasao/status/989842844243279872 ライセンスは Apache License 2.0 です。
View detect_marker.py
import numpy as np
import random
import math
import cv2
from PIL import Image
import sys
def detect_markers(im):
markers = []
# 輪郭線抽出のための二値化
@unarist
unarist / mastodon-add-abbr.user.js
Last active Sep 6, 2018
:don: - スラングにabbrつけるやつ
View mastodon-add-abbr.user.js
// ==UserScript==
// @name :don: - スラングにabbrつけるやつ
// @namespace https://github.com/unarist/
// @version 0.21.1
// @author unarist
// @match https://mstdn.maud.io/*
// @grant none
// @downloadURL https://gist.github.com/unarist/ce93c77eee6ff9bf51491ff06a3109d3/raw/mastodon-add-abbr.user.js
// @noframes
// ==/UserScript==