オレは高校生シェル芸人 sudo
新一。幼馴染で同級生の more
利蘭と遊園地に遊びに行って、黒ずくめの男の怪しげな rm -rf /
現場を目撃した。端末をみるのに夢中になっていた俺は、背後から近づいてきたもう1人の --no-preserve-root
オプションに気づかなかった。
俺はその男に毒薬を飲まされ、目が覚めたら・・・ OS のプリインストールから除かれてしまっていた!
『 sudo
がまだ $PATH
に残っていると奴らにバレたら、また命を狙われ、他のコマンドにも危害が及ぶ』
上田博士の助言で正体を隠すことにした俺は、 which
に名前を聞かれて、とっさに『gnuplot
』と名乗り、奴らの情報をつかむために、父親がシェル芸人をやっている蘭の $HOME
に転がり込んだ。ところが、このおっちゃん・・・とんだヘボシェル芸人で、見かねた俺はおっちゃんになりかわり、持ち前の権限昇格能力で、次々と難タスクを解決してきた。おかげで、おっちゃんは今や世間に名を知られた名エンジニア、俺はといえばシェル芸 bot のおもちゃに逆戻り。クラスメートの convert
や ojichat
や textimg
にお絵かきコマンドと誤解され少年ワンライナーお絵かき団を結成させられる始末。
ではここで、博士が作ってくれたメカを紹介しよう。最初は時計型麻酔 kill
。ふたについた照準器にあわせてエンターを押せば、麻酔シグナルが飛び出し、プロセスを瞬時に sleep
させることができる。
次に、蝶ネクタイ型 banner
。裏についているダイヤルを調整すれば、ありとあらゆる大きさのメッセージを標準出力できる。必殺のアイテムなら fork
力増強シューズ。電気と磁力で足を刺激し、 :(){ :|:& };:
でプロセステーブ
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.
First, a little aside on the details of Rust's module system, and specifically paths; it is
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 としてどの様に関わっていけば良いかを理解する上で、自分なりの情報集めをしたいと思っています。
✅ 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
- 最適化したい
- high-level optimization
- 例:
____-------____ | |
__-- --__ | |
/ \ | |
\ _--_ _--_ / あなたはシステム管理者から通常の講習を受けたはずです。 | |
| ,--. ,--. | これは通常、以下の3点に要約されます: | |
| |()| |()| | | |
| _______ | #1) 他人のプライバシーを尊重すること。 | |
| \ ||| / | | |
| `---' | #2) タイプする前に考えること。 |
C++ links: Coroutines
https://github.com/MattPD/cpplinks / C++ Standard / C++20 / Coroutines
(draft; work in progress)
#coroutines (C++ Slack): https://cpplang.slack.com/archives/C5JS5JXT5
日時: | 2024-11-25 |
---|---|
作: | 時雨堂 |
バージョン: | 2024.2 |
URL: | https://sora-labo.shiguredo.jp/ |
概要
パターンとはその言語が抽象化できなかった敗北の歴史である。 しかしどんなに優れた言語であってもあらゆる繰り返しに勝てるわけではない。 人は必ずメタ繰り返しを欲するからだ。 そしてそれはRustも例外ではない。
ここでは、OOPでも知られているパターンよりも、Rustに特有のパターンを思いつく限りまとめてみた。名前は適当。
- crate splitting
- でかいcrateを分割して、見通しを良くする・再コンパイルの分量を削減する・並列コンパイルを可能にする
- 親玉crate(全てにdependする)と殿crate(全てにdependされる)があることが多いので、だいたい束みたいな形になる。
import numpy as np | |
import random | |
import math | |
import cv2 | |
from PIL import Image | |
import sys | |
def detect_markers(im): | |
markers = [] | |
# 輪郭線抽出のための二値化 |