普段はLinux(Arch Linux + i3)を使っているsheeplaが、Windowsでいい感じの環境を作るためにもがいた記録です。 「キーボード操作ですべてを完結させたい」「お気に入りのフォント・キーバインドを設定して生活したい」といったこだわりを捨てられない人におすすめです。 逆に、「安定した環境を使いたい」「Windowsのデフォルトの設定を壊したくない」「細々としたカスタマイズに時間を掛けたくない」人や商用のリッチなソフトウェアを多用する人にはあまり役に立たないかもしれません。
| #!/bin/sh | |
| # 参考 | |
| # https://qiita.com/_-_-_-_-_/items/214d537aae2c1488692c | |
| get_random(){ | |
| od -v -An --width=1 -tu1 -N1 < /dev/urandom | \ | |
| awk "{ print \$1 % 10 }" | |
| } |
| function translate(text, from = "auto", to) { | |
| try { | |
| const result = UrlFetchApp.fetch( | |
| "https://translate.google.com/_/TranslateWebserverUi/data/batchexecute", | |
| { | |
| payload: | |
| "f.req=" + | |
| encodeURIComponent( | |
| JSON.stringify([ | |
| [ |
オレは高校生シェル芸人 sudo 新一。幼馴染で同級生の more 利蘭と遊園地に遊びに行って、黒ずくめの男の怪しげな rm -rf / 現場を目撃した。端末をみるのに夢中になっていた俺は、背後から近づいてきたもう1人の --no-preserve-root オプションに気づかなかった。
俺はその男に毒薬を飲まされ、目が覚めたら・・・ OS のプリインストールから除かれてしまっていた!
『 sudo がまだ $PATH に残っていると奴らにバレたら、また命を狙われ、他のコマンドにも危害が及ぶ』
上田博士の助言で正体を隠すことにした俺は、 which に名前を聞かれて、とっさに『gnuplot』と名乗り、奴らの情報をつかむために、父親がシェル芸人をやっている蘭の $HOME に転がり込んだ。ところが、このおっちゃん・・・とんだヘボシェル芸人で、見かねた俺はおっちゃんになりかわり、持ち前の権限昇格能力で、次々と難タスクを解決してきた。おかげで、おっちゃんは今や世間に名を知られた名エンジニア、俺はといえばシェル芸 bot のおもちゃに逆戻り。クラスメートの convert や ojichatや textimg にお絵かきコマンドと誤解され少年ワンライナーお絵かき団を結成させられる始末。
ではここで、博士が作ってくれたメカを紹介しよう。最初は時計型麻酔 kill 。ふたについた照準器にあわせてエンターを押せば、麻酔シグナルが飛び出し、プロセスを瞬時に sleep させることができる。
次に、蝶ネクタイ型 banner 。裏についているダイヤルを調整すれば、ありとあらゆる大きさのメッセージを標準出力できる。必殺のアイテムなら fork 力増強シューズ。電気と磁力で足を刺激し、 :(){ :|:& };: でプロセステーブ
これは要約&主観込みです。全文は https://www.youtube.com/watch?v=HhMpeBELrhQ&t=345s で見て下さい。
- Botはサーバー毎のアバターを使えるようになるかも知れない(may)
- GUILD_MEMBER_ADDにinviteフィールドを増やしたいけど色々問題ありそうだからTrust&Safetyに相談中
- Botにバナー的なのを増やす予定(詳細不明)
- テキストボックスなどのコンポーネント追加予定、ただし技術仕様も書かれてない段階
- 可変長引数は実装予定に入っているけど、スラコマ権限の方が優先されてる
applications.commandsはbotだけで更新されてないものにもついてくる- Botが動画を送受信できるようにしたいけど、技術的に難しくなりそう
- Message Content Intentの期限は延びなさそう
- アーキテクチャ上の問題でBotのカスタムステータスはサポートされていない
| fpsMeter() { | |
| let prevTime = Date.now(), | |
| frames = 0; | |
| requestAnimationFrame(function loop() { | |
| const time = Date.now(); | |
| frames++; | |
| if (time > prevTime + 1000) { | |
| let fps = Math.round( ( frames * 1000 ) / ( time - prevTime ) ); | |
| prevTime = time; |