トップ «前10日分 最新 次10日分» 追記

はじめてのにき

ここの位置付け

2004|11|
2005|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|12|

ToDo:


2024-10-14

_ 親バカ日記

33,34,35ヶ月

論理ってのがなんなのかよくわからなくなった昨今だけど、論理ぽいのがかなり出てきている。月が見えなくなって「なんで見えなくなったのかねえ?」と聞くと「くもでかくれたんじゃない?」とか

近所に児童館が二つあり、「ころころ」と「ぷくぷく」なのだけど、最近は「ぷくぷく」がお気にいり。後者の方が小規模なので、落ちつくのかもしれない。「ころころとぷくぷく、どっち行く?」と聞くと「ぷくぷくー!ころころ、閉まってるって」などと答えたりする。もちろんウソなのだけど、閉まってれば行くことはないってことがわかってるんだなぁ、と

「帰れる」でなく「帰れれる」というなど、むしろ原則からすれば間違ってる方が正しい感がある「ミス」をするなんてのは https://www.amazon.co.jp/dp/4000296590/ で読んだ通り。汎化性能高いなあ、と。「帰られる」がより正しいとは思うけど

記憶力とかも良くなって、ちょっと前の会話に関連する会話をしたりができる。旅行でアルパカにキャベツをあげている時、小さい切れ端をあげようとして「大きいのにしな、小さいのは怒られるかも?」などと言われ、その数分後、妻が「小さいなぁ」などと言いながらキャベツをあげると「ちっちゃいの食べた?怒んなかった?」「怒んなかったよ」「そっか……ちっちゃいのでもいいみたい!」など

謎の演説をしてたりするけど、謎なので覚えられない。ので書き起こしておく。「いろんないろがかいてあるけど、あ、なんか!これが!わかりやすい、これはわからやすい、これがわからすい、これがわからしゃいです。ねー。あとはこれ、でーじーだけど。でじエービーシーディーかなけど、なんかね!エービーシーディーをうたってるけど!なんか。でーじーうごかないでしょ。なんかね!あとね。これね。なんか、いろんな、これ、みてみて、エービーシーディーかいてあんの。ね、あのーね、なんかね、どうぶつとかに、おっかこっえんだ、ねー。なんかねー、これがちりちりってひかるんだけど。……(ひたすら続く)」

何を言ってるかわからないけど、どうも何かを解説しているのだと思う。保育園の先生なり、ぼくたちなりが説明しているのを、マネしているのかなぁ、というフレーズがちょくちょく出てくる感じで

そういえば ABC の歌がやけに好きで、なんかおおむね覚えている。最後の now I know my ABC, next time won't you sing with me? が

のーはいのーはいえーびーしー
ねくすたいむうぉんちゅーてぃんぐるみー

とかいう感じで、かわいい (16:02)


2024-10-01

_ なんか気持ち悪い文章

https://x.com/kusano_k/status/1838965345048265017

から引用していただいている、僕のイキリ発言について

僕は専門性が無いことが一定期間コンプレックスだったと思う。「A さんは XX に信念を持って取り組み続けて、今では XX は世界中から受け入れられている」みたいなのって、かっこいいじゃないですか。ひるがえって僕は器用貧乏で、特にそいうの無いなあ、なんて思っちゃうんです。今はなんとも思っていないんだけど、昔はそういうのを気にしていた。 今でも正直何が得意ということは無いと思う。長い間マジメにプログラム書いてることがあり、いろんなとこで平均以上のなんかができる、くらいの自信はあるのだけど、ゴルフにせよ、アルゴリズムにせよ、低レイヤにせよ、まぁなんでもいいんだけど、まわりに自分よりできる人があふれかえっているのよね。正直、今の僕には「XXなら誰にも負けません」なんて領域はない

そういう自己認識で、 kusano さんが書いておられる「全く新しいものが出てきたところですぐに対応できる」的な自信はそれなりにはあるものの、「目指すすべき姿」とはあまり思っていない。なんというか、一つのこと極められる人は、 CTF の種々の問題は解けないけど、人類のためになっている、みたいなケースが多そう

そいう前提で、これを書いているのは、僕みたいな、なにが得意というわけでもないけど、あれやこれや触って、あれやこれや知ってるし、突然 ksnctf 与えられてもそれなりに解けるけど、それぞれにすごく詳しくもない、みたいなのを肯定したい気持ちがあるのだと思う。そういう姿が「プログラマの目指すべき姿」というのは同意しないのだけど「好ましいプログラマの一つの形態」くらいだと良いなあ、くらいには思うのかな

現環境では、専門性がないのはたいして悪いことではないので、気にせず好き勝手なことを学ぶと良いと思うよ、くらいの

(00:18)


2024-09-28

_ MN-Core challenge 終了

無事に終わって良かった。想定より多くの人が想定より熱心に参加してくれて、また、今までありえなかった、社外の人が詳細なブログ記事を出す、などをしてくれていて、存在の周知とか、転職先の候補になるとか、そういう効果が起きるといいねえと。まぁ種まき的な感じだから、効果があったかがわかるのはだいぶ先になるんだろうけど……

いくつか記事リンク

MN-Core 、アセンブリ言語の記述はまるで普通の ISA のコードを書いてる気分になる見た目になってるけど、実は mux カタカタやってるだけ、だから計算結果を複数箇所に出すとか当たり前、ってなっている。これって現代の CPU の、 ISA とは全然違うマイクロアーキが内部的に動いてる、て世界観と真逆で、好きなところで、社内で「このへんブログ記事書くと良い気がする?」とか思っていたのだけど、最初の記事とか、 https://qiita.com/kikx/items/23a76e196789250acd51 とかもそうなんだけど、社外の人たちが普通にこういうのを書いてくれている、ってのが、すごいなーという感じ

勝手に出した賞金は

  • sosuupoyo さんが PFN オールスター倒した。この条件を満たしたのは3位までだったらしいけど、その中で1位に出すということだったので
  • sosuupoyo さんが PFN の最高記録を最初に倒す (Transpose) 。 PFN 社内記録が破られる数について、みんなが1問とか0問とか言ってるなか、僕が一番楽観的な予想で4問と書いていたのだけど、最終的に7問だったか破られたぽくて、ひとびと本当にすごいな……と
  • tails さんが FizzBuzz first par 。 FizzBuzz が盛り上がらなかったのだけは、今回残念なことだった。僕は FizzBuzz くらいしかちゃんとやってないくらいの勢いだったし、ああいうの好きな人他にもいそうなものだけど……好意的な見方をすると、本戦の方が楽しい、かつ、競争が激しいのでそっちに時間投入しないともったいない、ということはありそうだった

の3つが該当した。50万*2のうち、片方くらい払う感じじゃない?て予想は当たってた感じだった。とりあえず社外の人に賞金を勝手に出すということはできそうとわかったので、今後もこういうのやっていきたさがある。 tails さんの方はゴルフ場に寄付という対応をしてくださった。1万円だとまぁそれでもいっかと思ってしまうので、次回以降は10万程度を単位にして、絶対に払う感じにしていきたさがある

今回 sosuupoyo さんは本当に強くて、頭一つ抜けてる感じがあって、まさに事前に想定していた「気持ちよく自前賞金を出せる」というか、これは称えるに値する!て感じだった。特に Transpose MAB が好き

FizzBuzz は社内 sota (nuさん) が 53 、僕が 76 、ということでコンテストには参加されていなかった https://lpha-z.hatenablog.com/entry/2024/09/24/000000 のかたも含めて、今のところ前座の僕ですら負けていない。1位の人のエントリ ( https://primenumber.hatenadiary.jp/entry/2024/09/26/234205 ) の

あとでPFN社内記録を超えておきます

に期待。実際できるんだとは思う

だらだらと自分の記録と比べてみる。左がぼく、右がコンテスト最高記録

  • welcome: N/A vs 2 。なんかやってないらしい
  • plus 2: 6 vs 5 。入力依存は考えてなかった (テストプレイ時はもっと他の問題もガバかったので、そこついてもなー感があった)
  • A+B: 6 vs 6
  • Mul7: 9 vs 6
  • Abs: N/A vs 13 。問題設定が途中で変わって invalidate されたまま
  • FAM8: 17 vs 15
  • fmul2: 11 vs 9
  • Lesseq: N/A vs 4 。これもやったけど、問題設定が変わったやつか
  • Transpose: 16 vs 10
  • Gather: 9 vs 6 。 madpe は「いらないから消えて欲しい」くらいの気持ちで……同じ箱に BAR も入っている
  • SquareSum: 12 vs 11
  • ConvertEndian: 3 vs 3 。唯一のトップ同着問題!
  • Mod3: 14 vs 10 。3で割る力は FizzBuzz で生きそうなもんなのに、気合いが足りない……
  • MatrixSquare: N/A vs 10 。あれ、 MAU 難しいからイヤだな……と思いつつも、書いた気はしたけど?僕のなかでマスクと MAU が難しくて、マスクは割とたくさん触ったから苦手なりになんとかなるんだけど、 MAU は触った頻度が低くてイマイチ身についていない
  • Contains: 22 vs 20 。これ社内トップが 22 から 24 くらいの時に「これは追いつけるやろ?」と頑張ってたら nu さんが縮めてて印象に残ってた
  • CountUp: 30 vs 26 。実は FizzBuzz の練習問題なのに……
  • TransposeMAB: N/A vs 15 。これ最後の方にできた問題だっけ。 mabdiff 楽しい
  • InversionSmall: N/A vs 10 。やったけど invalidate された
  • Inversion: N/A vs 31 。たしかやってない?

ConvertEndian 以外はトップ同着にすらなってないことがわかった上に、そもそも解いてない問題も多い。一応言い訳としては、途中で問題仕様を変えて invalidate されたのがあったり、社内テストの時はもうちょっと問題数があって、今回採用しなかった問題を解いてる、てのはあったりする

N/A のとこどう考えるか次第だけど、50位くらいになりそうな感じかなぁ?まぁ5年くらい(?)仕事で触ってる人が、その程度ということで、みなさんホントすごいですね……という感想だった。参加してくださったかたがた、ありがとうございました

(17:17)

_ 次回

今回の、これはプログラミングコンテストというよりは、パズルゲームです!て割り切った設計は、僕が思いつくなかでは、一番間口も広く、楽しいスタイルだったように思っている。特に全てが 0 初期化されてるとこからスタートとか、 mv が一瞬で終わるとか、パズルと割り切るまでは、仕事でやってる人間としてはちょっと抵抗感がある設定で、実際社内テストは最初は固定ランダム初期化したメモリでやっていたりもした

反応も良かったようで、良かった。ただ、これ同じフォーマットでもう一回やると、第一回のサブセットの参加者人数、似たような人が上位に来る、みたいなことになりそうで、するとこれ会社としてやる意義は……?となりそうな気がしている。参加人数が減るとしても、今回と違った層の人が参加する、今回と違った雰囲気の問題をやってもらう、そもそも成果物が直接有用になる問題にする、あたりを達成した方がよさそうで……

ただ、今回「楽しかった!」、って言ってくださった人たちが次回は not for me 、になるのは心苦しさあるよねえ。うまい方法あるかなあ。単純にこいうの考えるのわりと好きで、似た方向として、スコアシステムとか考えるのも好き

あ、そうだ、こんな文章書いてるけど、僕はそんなに運営仕事ほとんどしてないです。なんか全てがいい感じに整えられていって、すごいな……て見ていた。感謝です

(17:30)


2024-09-23

_ gnalang

https://ierae-ctf.com/ の gnalang

制約は

  • The polyglot must be executable in `sh` and `node` both.
  • `sh` and `node` must exit normally when executing the polyglot.
  • `sh` and `node` must return the same output when executing the polyglot.
  • `sh` must never cause error for each executed command.
  • The polyglot must output "Yes\n" when the string given from stdin is a palindrome. "No\n" otherwise.
  • The polyglot must be a palindrome.
  • The polyglot must not contain the following tokens: '$', '#', "//", "<!--", "-->", '\n', ' '.
  • The polyglot must not write anything to file as a shell script (because it fails and causes error)

マジで?てなったけど、考えいくと割と普通にというか、新奇な道具が出ることなく解けてしまった

  • 空白不在はタブで無問題
  • sh は exit 以降無視できるので一行コメントがあるようなもの (と思っていた)
  • /* が封じられてないので、 sh と js の分離は /*/true とかで開幕でできる
  • POSIX shell なんて知らんしめんどいよーと思ったけど、 sed があったのでそれで OK (地味に $ が封じられてたので少しハマったけど)
  • JS 側は "fs" を require するやつが、 sandbox 中だと動かなかったので、適当にぐぐって process.stdin というのを使うやつを拾った
  • palindrome は1行コメントがなくても、 "n\"" でおおむね無力化できる、てのがかなり一般的に広い言語で使える

くらいか。最後のは作問者が知らなかったらしい。前から読むと文字列だけど、後ろから読むと " があまるので、これを二つ使うと好きな区間をコメントアウトできる

一番ハマったのは polyglot や palindrome と直接関係がない、 backquote の挙動で、煎じ詰めると

exit;echo `\``

が /bin/sh だとエラーになる、ってことだった。 bash だったら OK だし

exit
echo `\``

も OK 。改行あったら読み込まないのは、よくある実行中に編集しちゃって困る経験的にもそうなんだけど、なんで実行しないスクリプトの `` の中身の backqoute がそろってるかを気にしるの?てなっていた

今思えば単に、 backquote の中で backquote を escape することはできない、ってこと?いや、うーんそれだと

echo `echo \`

が通らないのも説明がつかないので、単に /bin/sh はマトモな処理系ではないから、な気がする……

まあなんかよくわからないので、 backquote のかわりに double quote を使って解決した

最終的なコード

/*/true	"n\"";/usr/bin/cat	-|/usr/bin/sed	's@.*@&_@;:l;/^.\?_/s@.*@Yes@;/^Yes\b/q;s@^\(.\)\(.*\)\1_@\2_@;tl;s@.*@No\n@';/bin/true	'*/;m=this;m/"/;";(async()=>{const	buffers	=	[];for	await	(const	chunk	of	process.stdin)	buffers.push(chunk);const	buffer	=	Buffer.concat(buffers);const	text	=	buffer.toString();e=text.substring(9999);console.log(text.split(e).reverse().join(e)==text?String.fromCharCode(89,101,115):String.fromCharCode(78,111))})();exit=1;/*';/bin/true	*/;exit;"\n";"n\";tixe;/*	eurt/nib/;'*/;1=tixe;)()}))111,87(edoCrahCmorf.gnirtS:)511,101,98(edoCrahCmorf.gnirtS?txet==)e(nioj.)(esrever.)e(tilps.txet(gol.elosnoc;)9999(gnirtsbus.txet=e;)(gnirtSot.reffub	=	txet	tsnoc;)sreffub(tacnoc.reffuB	=	reffub	tsnoc;)knuhc(hsup.sreffub	)nidts.ssecorp	fo	knuhc	tsnoc(	tiawa	rof;][	=	sreffub	tsnoc{>=)(cnysa(;";/"/m;siht=m;/*'	eurt/nib/;'@n\oN@*.@s;lt;@_2\@_1\)\*.(\)\.(\^@s;q/b\seY^/;@seY@*.@s/_?\.^/;l:;@_&@*.@s'	des/nib/rsu/|-	tac/nib/rsu/;""\n"	eurt/*/

(10:34)


2024-09-12

_ ぷよ

むっちゃひさびさにぷよ動画を紹介され、見てたら先折り GTR ばっかりで、「2018年頃に彗星の如く現れ、同年末には消息を絶った、正体不明、伝説の最強プレイヤー。」によってそうなった、と教えてもらった

https://w.atwiki.jp/puyopuyo-player/pages/52.html

すごい話だけど、意味わからんな……

(15:06)


2024-09-03

_ elon

woke 批判て、個人的に賛成しないものの、気持ちはわかる感じがあるのだけど、なんか最近は anti woke の方に woke してる感を感じていて、なんか面白いなって

なんとなく、日本でいうと小林よしのり的な、というか……

(18:12)

_ icfpc

https://icfpcontest2024.github.io/scoreboard.html

3d に集中してたから、って言い訳を考えていたけど、 3d だけで見ても 8 位かぁ

フルで参加しづらいこと考えても、チーム入る感じが良いのだろうな。。

(22:09)


2024-09-01

_ いろいろと話をした

いろんな人に興味深い話を聞いた。とりあえずメモ

  • row hammer の今について。ファームウェア側である程度のことしたら完全に防げるのでないの?的なこと聞いてて、読むと良いと言われたのはこれかな: https://ieeexplore.ieee.org/document/9152631
  • https://ai-li.co.jp/ について。普通に本業的に興味ある感じだったのでもちょい聞きたかった
  • ファイルシステムについて
  • OS 人材の職場について、もちょい聞きたかったかもしれない
  • MN-Core ゴルフをやろう!という話。改善した PE 内と外でアドレッシング単位が違うのだるい、という話。現地では慣れたと言ったけど、たしかになんかした方が良い気がしてきた
  • ELVM scratch バックエンド。ひさびさに見たけどやはりすごいことになっている: https://scratch.mit.edu/projects/383294522/editor/
  • チューリング完全性うんぬん。全然低レイヤじゃないなつかしい名前が出てきて、ああそういえばそこつながりあるのか、とか
  • reversing を楽しいと思う理由について。僕は reversing まるで楽しめないのだけど、なるほどなぁ、という感じで、かなり面白かった。「数独ひたすら解いてる人に近い感じですか?」「近いと思う」的な
  • goma のお葬式。いつも通り「まず redo をですね……」という話をしたが伝わってなさそう
  • マネージャについて
  • 300年生きたい話
  • binary 2.0 conference 的なのをやろう!という話。あまり具体化ができなかった
  • ierae ctf に参加せよとのお達し

あとなんか、すっごいひさびさに物理本屋を見て、こういう本があるのだなぁ、というのが何冊か。たまに行って物理本買うのも良いだろうね、と (やらない気がするが)

(16:22)


2024-08-30

_ Binary Hacks Rebooted に寄せて

https://www.oreilly.co.jp/books/9784814400850/

これまた「やりましょう!」と言ったこと以外にはあまり貢献していないのだけど、ぽけーと眺めていると、すごいクォリティの本ができていた

Binary Hacks の良かったところって、地味に実用的な内容も多いのだけど、それはそれとして、単純な探求精神、下の方までコントロールする全能感、意味があるかはともかく楽しいことをやる遊び心、そういうのがあったのかなぁ、と。今回、著者が完全に入れ変わってるし、僕が特になんか言ったわけでもないにも関わらず、そういうノリが通底してる感じに、とても嬉しくなってしまった。 Rebooted の「本書に寄せて」でも、たかばやしさんも同じようなことを感じたんだなぁ、とこれまた嬉しくなってしまった

そういう精神性については、 Binary Hacks の「本書に寄せて」 ( http://0xcc.net/binhacks/sample.pdf ) が本当に素晴らしいと思うので、もし買うか悩んでるかたがいるのであれば、これは Rebooted にもそのまま適用できると思うので、読んでみていただくと良いように思います。いやこれいつも言ってるんですが、この shiro さんの文章は、人生で読んだトップクラスに好きな文章レベルなんですよね……

精神の連続性を感じる一方で、クォリティは良い意味で継承されなかったと感じている。正直僕の文章はあまり読み返したくないレベルでアレだし、他の人達の文章はすばらしいけど、そうは言っても相互レビューや協力してくださった方々のレビューの量や質が、 Rebooted では本当に比較にならないレベルで行なわれていた。

モチベーションがないやつは書かない方が良いだろう、と、今回何も書かないつもりだったのですが、なんだかみんなが楽しそうで、ちょっとだけ書いてみたくなって、 1 hack だけ書かせてもらいました。だけど、やっぱり、ちゃんと文章を書くってすごく大変で、想像よりはるかに時間がかかったし、書き始めたことを後悔したりしていました。本当はもう一つ、 seccomp-bpf でトレーサを作る、ってネタを書きたい気持ちもあったのですが、それはまぁ今度どこかに書きたいなぁ、と思います

特に印象に残っている部分を箇条書きにしてみる

  • やっぱりみんな好きな、 DWARF で遊ぶやつ
  • ソフトウェアの本なのにケーブル作れって言ってくるファームウェア自作
  • 異常な浮動小数深掘りっぷり
  • コンテナ・セキュリティは単純に現代には必須な内容が網羅的に紹介されていた
  • 仕事で関連があったのでなつかしくなった row hammer
  • hikalium さんのたのしげな文体・内容

あたりかなぁ。いろいろ忘れてしまってそうだけど

あと、著者の方々、各分野の一線の人たちで、でも分野違いで Rebooted 以前は相互に知りあいでない組みあわせが多かった中、その人たちが知りあうきっかけになったのは、良かったことなのでは?と想像していたりします。これはまさに、僕が Binary Hacks 代表のたかばやしさんのおかげで起きたことで、色んな人と知りあい、知らなかったことを知るきっかけになって、大変感謝しています。なんで、なにかそういう似たような副産物が生えてたら良いなぁ、などと

さて本題。個人的に懸賞金を出します

実は、著者のわたなべさんの指導のもと、おおむね僕が手を動かして、 Binary Hacks Rebooted のどこかに秘密のメッセージを埋める、ということをしました。比較的素直なところにあるつもりですが、メッセージを取り出すのは、それなりに大変じゃないかな、という感じのものです。いや、テストプレイが不十分なので、思ったより簡単だった、ということはありそうな気もしていますが……

なんにせよ、最初にそのメッセージを発見して、 X でリプライとしてそのメッセージを送ってくださったかたに、10万円、ということにしようかと思います。間違ったメッセージのリプライがついた場合は、単に僕がリプライに気付いてないのと誤認されると申し訳ないので、なるはやで間違ってるよ、とリプライする、ということにします

(追記) 瞬殺されました:

https://x.com/shinh/status/1830092237809533351

(19:51)


2024-08-29

_ おまけ

https://shinh.skr.jp/m/?date=20240828#p01 の続き

やっぱ FizzBuzz に思い入れが強いので、追加したくなりました

  • 最初に FizzBuzz でパーを出した人
  • 最初に FizzBuzz で僕のコードを越えた人
  • 最初に FizzBuzz 以外のいずれかの問題で、社内のベストを倒した人

にそれぞれ1万円プレゼント、ということにします

僕の FizzBuzz は、それなりにがんばったやつですが、たいしたことはないです。 sha256 は 766eb642f373a519615f158e28744df658e70617f90c44640e5a79cff9690d67 です

(00:07)

(22:08更新)


2024-08-28

_ MN-Core challenge によせて

https://mncore-challenge.preferred.jp/

言い出しっぺである以外はたいしたこともせず、なんだか非常にクォリティの高いコンテストが用意されて、とても嬉しい。いや言い出しっぺだっけ?ちょっと自信がなくなってきた。まぁ「やるってことは決めましょう!」は書いたぽい

コンテストに対して自分が意識的にしていた貢献としては、トップ陣は勝手に楽しむと思うので、その他の順位帯の人でも楽しめるものに、的な意見を多く出した、というのがある。うまくいっていると良いなぁと

始まったばかりだけど、反応もなかなか良いように思う。練習段階での参加人数や盛り上がりは、予想を大きく越える、とまではいかないものの、想像できる範囲で最高、くらいの感じに思える (2,3シグマくらいのイメージ)。とても嬉しい。トップ陣のヤバさというか、既に解かれてる問題数なんかは、想像した範囲を越えてるかなぁ

趣旨としては

https://shinh.skr.jp/m/?date=20240313#p01

の「人が欲しい」の一貫で、最近「仕事するのもいいけど、飲み会でもして人増やす方が有用では??」みたいなことをよく考えていて、そういう話

他にも副産物がある(例えばドキュメントの品質が非常に良くなった)ものの、採用が主目的なので、それとの関連を少しだけ書いておきたい気分がある

今回のコンテストは特殊な HW でのゴルフ大会ということで、通常のゴルフでやるアルゴリズム考察に加えて、 MN-Core 特有の演算器やポートのパズルを楽しむ、という側面も強いと思う。ただなんかちょっとミスマッチが起きると不運があるかもと思って書きたいところなのだけど

  • こういうのを楽しめる人たちは欲しい
  • 実際こういうのを楽しめる人たちが働いてる

は真なのだけど

  • 仕事で実際にこういうことに使う時間が多い
  • こういうのを自動化できなくて困っている

ということは、実はあまり真ではない。あまり真ではない理由はおおむね二つあり

  • 少なくとも DL だと、 python で書かれた MN-Core 向けのチューニングの特に無い計算手順に対して、適切なデータ配置や計算手順を作ることができれば、アセンブリレベルの細かい最適化が多少ヌルくても、十分に性能が出ていることが多い
  • とはいえ行列積などの律速要因となる重要な部分はポートパズルなどを考慮する必要があるのだけど、それも今回の問題のような、レイテンシ重視なパズルではなく、何十回も同じ処理を繰り返す時に、1要素を処理するのに何サイクルかかるか、というスループット重視でパズルを解くことになる

という話がある。なんというか、 SRAM の種別を適切に選ぶ、みたいなミクロなところでは、それほど困っていないというか、もっと大きな問題があるというか

言いかえると、「コンテストをやってみて、ゴルフができそうだから入社しました!」は、そうでもないかもしれない。「コンテストをやってみて、手でこういうのやるのはなぁ、と思ったから応募やめよう」もそうでもないかもしれない、て感じのことが書きたかったのです。あと「楽しめたけど、成績がふるわなかったから入社してもついていけない」なんかも明確に偽ですね。このコンテストを楽しめる人であれば、成績と関係なく適正がある可能性が高いと思います。実際社内のゴルフ好きたちが楽しそうに準備をして、開催の運びとなったわけです。もちろんこのコンテストを楽しめないとダメというのも偽です。社内テストでも、チーム外の人が楽しんでいたり、チームの人がスルーしていたり、割といろいろです

まぁなんか、採用目的のイベントなのだけど、実際の職務か、それとも単なるパズルゲームかと2択で聞かれると、パズルであると考えてもらった方が良いと思います。実際、業務に近い要素を色々検討したのだけど、議論を経て、より単純にパズルとしての楽しさに寄せていった、みたいな経緯もあったりします。ただ、とはいえ、通常のコードゴルフよりは職務に近い、とも言える、そういうちょっと独特な距離感ですね

さて、僕が書きたかったことは垂れ流したので、ここからが本題です。このコンテストに便乗して、個人的に賞金を出します。ただ、以下の条件とします

  • コンテスト終了後、現段階での PFN 社内ベストをかき集めて一人のプレイヤーとしてコンテストに参加させたと仮定してスコア計算した時に、一位を取れていれば50万円。こっちは投稿時間は無視で同着でも OK
  • FizzBuzz 最短賞の人が、現段階での PFN 社内ベスト FizzBuzz より短ければ50万円。こっちは同着ではダメ

前者、ちょっとマジメに考えてるとコーナーケースが色々ありそうで文言ややこしくなったんですが、基本的には総合一位が PFN オールスターと互角以上だったら、本来の賞金に加えて50万円、て気持ちです。がたぶん可能性としてはコンテスト一位でない人が PFN ベストを入れると一位になる可能性もある気がする?のですよね

後者はシンプルですね。 https://x.com/shinh/status/1760252565051334786 の時から書いている通り、 FizzBuzz は絶対楽しいと確信していて、有給2日くらい取って取り組んだ結果やっぱり楽しかったので、思い入れが強いのです

ちなみに、 PFN オールスターと言いつつ、おおむね一名の激ヤバゴルファーと対決する感じとなっています。僕と勝負したことあるトップ層はよくご存知だと思いますが、僕はなにをやってもせいぜいかませ犬ポジションなんで、僕のコードはオールスターに一切入ってません。自分のコードが入るようでは内部競争不足ということで、今回の試みはやっていないと思います。合計100万て、まぁ軽々しく出したいお金ではないので、「ああ、このレベルまで楽しんでくれたら気持ちよく出せるなぁ」と思えるコードを書いてくれた同僚陣に感謝です。あともちろん、 https://x.com/shinh/status/1826854715579400650 にも書いた通り、いろいろと準備にコストがかかってるので、いろいろ感謝です。なんか前々から、個人的に賞金出すってやってみたかったけど、なかなか自分で問題用意するのも難しいよね、ってんで、ちょうど良かったというのもあったりします

つまりまぁ、かなり厳しいハードルだと思っていて、とはいえ世の中の人のすごさ、特に競争のすごさというのも知っているつもりで、それぞれ30%くらいの確率で支払う必要が出るんじゃない?くらいを想像しています。想像を大きく外して、10人くらいが条件を満たして完全に社外の争いになっていたら、笑ってやってください。いやホント、1ヶ月後が楽しみです!

いちおう、趣味で勝手にやってる話を疑う人もそんなにいない人もいないと思いますけど、現段階での社内最高スコアを固めたつもりの tgz を作って sha256 取っておきました

$ sha256sum sota240828.tgz
0063a806d91403c47ff4b15c6669b0d09d506f5152c6ea3a3ebb8affe1d33e5f  sota240828.tgz

9月19日追記: 同着の場合について書いてなかったので、書いておきます。前者の総合得点で同着だった場合、公式の順位で上位の方、とします。後者の FizzBuzz は、早く回答を提出した方、ということとします。完全に同着の場合、賞金が倍増するのはしんどいので、按分とさせてください

(22:42)


2024年
12月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
1.は(2024-08-02 07:13)
search / home / index

全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。

shinichiro.hamaji _at_ gmail.com / shinichiro.h