ときどきの雑記帖 RE* (新南口)
Escape from New York
2月1日は「笑い男事件」が起きた日
2年後か(謎)
2024年2月1日に発生した、セラノゲノミクス社社長アーネスト瀬良野(セラノ)誘拐と、その後のウイルスプログラムをばら撒くという手口を使った、 マイクロマシンメーカー6社に対する脅迫、もしくはこのサイバーテロによる事件を指す。正式名称は「広域重要081号事件」。
2024年2月3日、警察庁会談直前の天気予報のTV生中継現場に、灰色の帽子と青いフード付ジャンパーを着た青年(アオイ)が現れ、瀬良野を拳銃で脅迫した。
【今日は何の日?】2月1日は「笑い男事件が発生」
— ライブドアニュース (@livedoornews) January 31, 2020
『攻殻機動隊 STAND ALONE COMPLEX』における出来事。2024年2月1日、何者かがアーネスト・瀬良野社長の電脳をハックし誘拐。莫大な身代金を要求した後、連絡を絶つ。警察が何の手がかりも掴めない中、2日後の2月3日に事件は大きく動き出すのだった… pic.twitter.com/mGQCzsTQdI
久しぶりにSAC観てたら笑い男事件が2024年2月3日だと知って真顔
— K_T@Manatee/?????kg (@_manatee) January 20, 2022
物体検出のサンプルなどを見る度に思い出すのが、攻殻機動隊の笑い男事件。あれ今リアルタイムで出来るのかなぁ…。作中は2024年2月1日の事件なのであと3年ちょっとw
— まるでだめお (@76ZFDi77sveJwcR) January 19, 2022
雑踏の中、本人の顔だけを如何なる角度でもリアルタイムかつ現実的に安全な精度で認識し続ける必要があるw
SACシリーズだと事件ものとして面白いのは笑い男編なんだけど、全体的に緊迫感と衝撃が強くて最後までハラハラ&かっけえええ!!ってなるのは個別の11人編なのよねー
— MISSILE228 (@MISSILE228apl) January 21, 2022
2nd GIGはOPからしてカッコよすぎるし、後手後手にまわって翻弄されながらも最後まで戦う9課の姿が熱いんだわ
ところで
円形の「笑い男マーク」の縁には英語で
“I thought what I’d do was, I’d pretend I was one of those deaf-mutes(僕は耳と目を閉じ、口をつぐんだ人間になろうと考えた)”
と書かれており、これはJ・D・サリンジャーの文学作品『ライ麦畑でつかまえて』からの引用である。
この英文と和文とで言っていることが違っているのが気になってしょうがないんですが、 他の人はそうでもないんですかね?
英文は小説に出てくるそのままだけど、和文の方は野崎訳とも村上訳とも違っている (それ自体は著作権の絡みもあるだろうからいいとして)し、 どうすればこの日本語になるのだろうと悩むことしきり。
RUBY_ON_BUG
こんな機能あったのか。 自前でビルドしたりデバッグしたりもしなくなってから久しいから知らなかった (ってその頃からあったりして)。
ruby-trunk-changes 2022-01-25 - ruby trunk changes
rb_bug() の実行時に環境変数 RUBY_ON_BUG が設定されていたらそのコマンドを実行する (デバッガを使ってアタッチするなどの使いかたを想定したデバッグ用の環境変数) という機能はリリース版でない開発ブランチ上でのビルドでのみ有効になるようにしていたのをやめています。 つまりリリース版でも RUBY_ON_BUG という環境変数を設定するとそのコマンドが実行される可能性があるのでちょっと注意が必要ですね。 [ruby-core:107092] [Feature #18483]
CVE-2022-0185
Linuxのユーザネームスペース内のプロセスがescape可能であるとの脆弱性が見つかりUbuntuやRedHatや他のディストリにも影響。Ubuntu21.04は丁度、今日サポートが終了なので移行するようにとの話。 https://t.co/4lzfKYcz6X
— 高梨陣平 (@jingbay) January 20, 2022
というのを見かけたのだけど、「ユーザネームスペース内のプロセスがescape可能」というのが よくわからなかったので(ry
'Now' would be the right time to patch Ubuntu container hosts and ditch 21.04 thanks to heap buffer overflow bug https://t.co/RhuZ2UKAGi
— The Register (@TheRegister) January 20, 2022
言及しているツイートだと「heap buffer overflow bug」という表現なので 違う切り口で見ている?
そこでさらに元記事を見ると
Ubuntu patch for heap buffer overflow vulnerability • The Register
The CVE-2022-0185 vulnerability in Ubuntu is severe enough that Red Hat is also advising immediate patching.
The flaw allows a process inside a Linux user namespace to escape, which means it potentially affects any machine running containers.
とある。
「ユーザネームスペース内のプロセスがescape可能」云々はこのThe flaw allows a process inside a Linux user namespace to escape
から持ってきたっぽい。が、そうすると, which
以下をばっさり切り落としちゃってるのは不親切な気もするなあ
(この部分が元のツイートに反映されていればこうまで悩まなかったかもしれない。が、
その方が良かったのかというと…?)。
せっかくなのでこの赤いリンクをたどってどんな修正だったのかを確認してみると…
[heap overflow bug in legacy_parse_param()]
Description
A heap-based buffer overflow flaw was found in the way the legacy_parse_param function in the Filesystem Context functionality of the Linux kernel verified the supplied parameters length.
Patches:
Introduced by 3e1aeb00e6d132efc151dacc062b38269bc9eccc
Fixed by 722d94847de29310e8aa03fcbdb41fc92c521756|local-CVE-2022-0185-fix
あー。そういうバグでしたか(修正部分を見て何か思うところがあったらしい)。
- kernel/git/torvalds/linux.git - Linux kernel source tree
- kernel/git/torvalds/linux.git - Linux kernel source tree
- CVE - CVE-2022-0185
- Ubuntu Manpage: user_namespaces - Linux ユーザー名前空間の概要
- Man page of USER_NAMESPACES
- ユーザ名前空間でコンテナを分離 — Docker-docs-ja 19.03 ドキュメント
- user_namespaces(7) - Linux manual page
glob bash 1
前回(zsh編最終回) から間が空きましたがBash編開帳。
まずはzshとbashの違いを人様の記事に乗っかっておさらい。
bashのワイルドカード展開は該当するファイルが無いと*が展開されずに残る - Qiita
zshの場合はどうなるの?
こうなる。
bash zsh パターン文字列を残す デフォルト setopt NO_NOMATCH 0個の文字列として展開 shopt -s nullglob setopt NULL_GLOB エラーにする shopt -s failglob デフォルト
次にマニュアルをチェック。 Bash Reference Manual
3.5.8 Filename Expansion
• Pattern Matching How the shell matches patterns.
After word splitting, unless the -f option has been set (see The Set Builtin), Bash scans each word for the characters ‘*’, ‘?’, and ‘[’. If one of these characters appears, and is not quoted, then the word is regarded as a pattern, and replaced with an alphabetically sorted list of filenames matching the pattern (see Pattern Matching). If no matching filenames are found, and the shell option nullglob is disabled, the word is left unchanged. If the nullglob option is set, and no matches are found, the word is removed. If the failglob shell option is set, and no matches are found, an error message is printed and the command is not executed. If the shell option nocaseglob is enabled, the match is performed without regard to the case of alphabetic characters.
ルー語的訳をつけておこう:)
-f
オプション(see The Set Builtin)がセットされていない限りword splittingの後に
Bashはすべてのワードをスキャンして‘*’, ‘?’, and ‘[’を探します。
これらのキャラクタのいずれかが見つかったとき、
それがクォートされていなければそのキャラクタを含むワードはパターンとみなされ、
パターン(see Pattern Matching)にマッチするファイル名のalphabeticallyなソート済みリストに置き換えられます。
パターンにマッチするファイル名が見つからなかった場合、
シェルオプションのnullglob
がdisableされていれば
ワードは置き換えられることなくそのままです。
nullglob
オプションがセットされているときにマッチするものが見つからなかった場合には
そのワードは削除されます。
failglob
シェルオプションがセットされているときにマッチするものが見つからなかった場合には
エラーメッセージが出力され、コマンドは実行されることはありません
シェルオプションのnocaseglob
が有効になっていると、
パターンのマッチはアルファベットの大小文字の違いを無視して行われます。
When a pattern is used for filename expansion, the character ‘.’ at the start of a filename or immediately following a slash must be matched explicitly, unless the shell option dotglob is set. The filenames ‘.’ and ‘..’ must always be matched explicitly, even if dotglob is set. In other cases, the ‘.’ character is not treated specially.
パターンがfilename expansionに使われていた場合、
シェルオプションのdotglobがセットされていない限り、
ファイル名の先頭にある’.‘という文字やファイル名の直後にあるスラッシュはその文字そのものにマッチします。
‘.’ および ‘..’というファイル名は、
dotglob
がセットされていたとしても常にその通りの字面のものとマッチします。
言い換えると、‘.’ という文字は特別扱いされないということです。
When matching a filename, the slash character must always be matched explicitly by a slash in the pattern, but in other matching contexts it can be matched by a special pattern character as described below (see Pattern Matching).
ファイル名のマッチングを行うとき、スラッシュはいつでもパターン中のスラッシュにマッチしなければなりません。 しかしそれ以外のマッチングコンテキストの場合には 以下(see Pattern Matching)に記述するように special pattern characterとマッチする可能性があります。
See the description of shopt in The Shopt Builtin, for a description of the nocaseglob, nullglob, failglob, and dotglob options.
nocaseglob, nullglob, failglob, dotglob の各オプションについての説明は The Shopt Builtin のshoptの記述を参照してください。
The GLOBIGNORE shell variable may be used to restrict the set of file names matching a pattern. If GLOBIGNORE is set, each matching file name that also matches one of the patterns in GLOBIGNORE is removed from the list of matches. If the nocaseglob option is set, the matching against the patterns in GLOBIGNORE is performed without regard to case. The filenames . and .. are always ignored when GLOBIGNORE is set and not null. However, setting GLOBIGNORE to a non-null value has the effect of enabling the dotglob shell option, so all other filenames beginning with a ‘.’ will match. To get the old behavior of ignoring filenames beginning with a ‘.’, make ‘.*’ one of the patterns in GLOBIGNORE. The dotglob option is disabled when GLOBIGNORE is unset.
GLOBIGNORE シェル変数はパターンにマッチするファイル名の集合を制限するのに使うことができます。 GLOBIGNOREがセットされている場合、GLOBIGNOREにあるパターンの一つにもマッチする マッチングファイル名のそれぞれはマッチ結果のリストから取り除かれます。 nocaseglob オプションがセットされている場合、 GLOBIGNORE中のパターンに対するマッチングでは大小文字の違いは無視されます。 GLOBIGNOREが設定されていてそれがnullでない場合、 .および..というファイル名は常に無視されます。 ただし、dotglobオプションをenableにするような効果を持つnon-null valueをGLOBIGNOREに設定すると ‘.‘と’..‘以外のすべての’.‘で始まるファイル名はマッチに成功するようになります。 ‘.‘で始まるファイル名を無視するというold behaviorをさせるには GLOBIGNOREにあるパターンの一つを’.*‘にします GLOBIGNOREがunsetされているとdotglobオプションはdisableされます。
ellipsis in Python
[Q&A] for文の中にわからないコードがあった - Qiita
で
for step_ahead in range(1, 10 + 1):
#この部分のstep_ahead:step_ahead + n_stepsがわからない。
Y[..., step_ahead - 1] = series[..., step_ahead:step_ahead + n_steps, 0]
という記述が出てきて、なんじゃこれは。と。
とりあえず pyhon dots
などといったキーワードで検索しようとしたら色々サジェストがでてきた。
python three dots in array - Google 検索
すると以下のようなものが見つかる。
- What is Three dots(…) or Ellipsis in Python3 - GeeksforGeeks
- numpy - What does “three dots” in Python mean when indexing what looks like a number? - Stack Overflow
- Cookbook/Indexing - SciPy wiki dump
- Three Dots in Python, What is the Ellipsis Object? | PäksTech
そういえばC++の...
もellipseとか言ってたようなと思いつつ
python ellipsis - Google 検索
で検索したところ公式ドキュメントの該当する部分が見つかった。
Python3の…(Ellipsisオブジェクト)について - Qiita
組み込み定数 — Python 3.10.0b2 ドキュメント
The same as the ellipsis literal “…”. Special value used mostly in conjunction with extended slicing syntax for user-defined container data types. Ellipsis is the sole instance of the types.EllipsisType type.
そしてこのellipseを使って具体的に何をやっていたのかというと
- PythonのEllipsis(…)とtype hints - These Walls
- NumPy配列ndarrayの次元をEllipsis(…)で省略して指定 | note.nkmk.me
- Ellipsis(…)の解説 | 機械学習エンジニアの技術メモ
Pythonの3点リーダー(…)の意味について解説します。
機械学習のベストセラー「ゼロから作るDeep Learning」の2作目「2 自然言語処理編」にも多用されてる記法です。
これは、応用テクニックですが、deep copyに利用できます。
なるほど。
200 × 0.1 = ?
xlcalculator で 数式まみれのExcel手順書にテストを足そう - Qiita
なぜか、 200 x 0.1 が 220 でなく、 220.00000000000003 に。この小数がどこから来ているか不明。
定期的に話題になるヤツだよね。と思いながら書いた人のプロフィールみたら 宇宙猫になってしまった(謎)
まあExcelの丸め規則と同じものを実装するのはそれはそれで大変だろうけど (なにせ明確な仕様が表に出てきてない(はず))。
おあとがよろしいようで
・sed、awkして船山に登る
— ひろせ31 (@hirose31) January 27, 2022
・国破れてSUNがあり
あとなんだっけ???
awkは書かねぇ、たった一行
ってのがありますね。
元々は電脳騒乱節だったかな?
ところでこの「おあとがよろしいようで」の使い方もよく間違っているそうで(これもそう)。