ONNX はチューリング完全だよ、という話

シクシク素数列 Advent Calendar 2018 向けです。ONNX はニューラルネットのモデルをエクスポートして、別の実装でインポートできたりする、相互運用のためのフォーマットです。複雑なモデルをサポートできるようにと、 Loop とか If とかがあるので、チュー…

ICFP programming contest 2018

無職なこともあり、とても楽しい問題だったこともあり、久々にほぼガチで参加してる会になりました。いや楽しかった。順位表が凍結された段階での最終順位は2位で、1位は絶対に無理、その後にできた変更はしょうもないので、おそらく7位とかそのあたりの、5…

転職について

6月14日がグーグル最終日でした。8月からPFNに混ぜてもらう予定です。退職や入社も重要イベントなんでしょうけど、転職活動それ自体が大変に楽しい体験だったので、入社したからって突然次の会社についての知見にあふれているわけでもなし、このタイミングで…

MJIT で dlopen 使わずに ELF オブジェクトを直接ロードする話

MJIT というのが Ruby に入ったのは聞いていて、すごいことするな、と思ってたんですが、実際に Ruby Kaigi で話を聞けて少し遊んでみたくなったのでした。そういえば https://turingcomplete.fm/5 の時に「MJITについてどう思うか聞いておいて下さい」とか…

clearstackの話

https://turingcomplete.fm/19#t=26:39 で僕のやったことに言及してくれて、「使ったスタックを消すなにかを浜地が作ったが、それは全く公開されていない」という趣旨の事が言われていました。でも実際のところなんか書いたけど、単に誰も興味を持たなかった…

ビット演算クイズを解いた時の話

http://herumi.in.coocan.jp/diary/1804.html#13を解いた時の話。光成さんは実験的に解かれたようだったんですが、割と理詰めで解けたので、思考過程をダンプしてみます。元のコードは int calc(int a, int b, int s) { const int Q = 1 << s, Q2 = Q * 2, Q…

お天気プロコンと圧縮アルゴリズムについて

https://beta.atcoder.jp/contests/wn2017_1/standingsむっちゃ僅差で2位。残念。この212点差がどのくらい僅差かというと、最後にいじってたところにもう2行変更を入れることを思いつけていれば、軽く2000点は差がついて勝ててたと思いますし、そうでなくて…

Deep Learning Acceleration 勉強会

https://connpass.com/event/64632/すごく面白かった。最近こういう会に行って感心することは多いのだけど、しかしなんか書きたいと思うレベルになかなか来ない、まあそれなりに年喰ったしな、とか思ってたんですが。低レイヤとか、自分がある程度既に知って…

10年ほど後のBinary Hacks

https://twitter.com/nalsh/status/869086098177146881を見て、今ならどういうネタが書かれるかなぁとざっくり考えてみます。 perf @nlashさんに指摘されていた通り、perfは重要だと思うんですが、書かれていたperf_event_openはptraceなんか目じゃないくら…

Very symmetric JavaScript code

だいぶ前に左右反転させてもだいたい同じに見えるコードを書いたのですが、もうちょっと進化させて、上下反転と、180度回転してもだいたい同じように見えるコードを書いてみました。デモサイト: http://shinh.skr.jp/obf/very_symmetric_js.htmlコード: http…

drdr

オレオレワークフローエンジン作りたくなる病というのがあって、例えば make 系なんかだと Wikipediaに色々書いてあったりします。ワークフローエンジンと総称するのが正しいのか知りませんが、依存グラフを順ぐりに並列に実行していくようなもの、色々ある…

tanlog

最近、 tanlog というのを作って使っていて、割と便利なので紹介してみます。https://github.com/shinh/test/blob/master/tanlog.rb元々は同僚と、なんか端末に出たもの前もって lv とか tee に入れておくのって、忘れることあるし、 lv とか tee に流すと i…

ELVM Compiler Infrastructure について

はじめに 言語実装 Advent Calendar 2016 用です。ELVMは、コンパイラをフロントエンドと中間言語とバックエンドにわけて、多言語多CPUに対応しよう……というようなLLVMの考え方を、パロディと言っていいレベルにまで単純化したものです。結果として実用性は…

ELVM Compiler Infrastructure

最近作ってたオモチャがだいたいまとまってきました。https://github.com/shinh/elvm第12回 kernel/vm 勉強会で発表した時のスライド:http://shinh.skr.jp/slide/elvm/000.htmlこれは何かというと、前作った bflisp を改良したり整理したりしたもので、 C 言…

Brainfuck interpreter in Ruby's Regexp

Ruby の正規表現だけで Brainfuck インタプリタを作ることができました。正規表現の実行は =~ だけなので、ループなども正規表現の内部で実行してます。https://github.com/shinh/hack/blob/master/bf_rb_reg/bf.rbつまりどういうことができるかというと、 B…

DEFCON CTF 本戦

binjaの現地枠がギリギリ空いてそうだったので、入れてもらいました。思ったことは、みんなすごいなあ、ということと、これしんどいなあということ、ルールはともかくみんなでわちゃわちゃやるの楽しいなということ、あとまあなんと言っても俺ふがいないな、…

システムプログラミング会

すごい久々にイベントの(共同)主催的なことをしましたhttp://connpass.com/event/34995/イメージとしては言語雑談会的な感じで、closedに人集めてウダウダやるつもりだったんですが、途中でPFNさんに場所貸していただけるということで、不特定な人を呼ぶこと…

defcon ctf qual 2016

binjaの人たちすごいなと見てた。今回は結構な時間参加できたんだけど、まあひょっとしたら節約できた時間もあるかもね、てくらいの貢献度だったと思う。まあ入れてもらってからまともに時間使って参加した回が無かったくらいの勢いだったから、少しはなんか…

8cc.bf

https://github.com/shinh/bflisp/blob/master/8cc.bfBrainfuckで動くCコンパイラができました。このコンパイラ自身で同じコンパイラをコンパイルすることも可能です(ただし5時間以上かかる)。前回との差分はレジスタの幅とデータメモリ空間を24bitに広げた…

就職して9年が過ぎる

転職して7年が過ぎたというのを読んで気づいたんだけど、そろそろ入社後9年が経過したらしい。僕は結構長い期間をここで過ごしたことになるんだなと思った。ちょっと以前のことを振り返ってみようと思う。言うまでもないけどこれは僕の書ける範囲での個人的…

bflisp.bf

https://github.com/shinh/bflispLisp インタプリタを作りました。 Brainfuck で。だいたい sedlisp や beflisp や makelisp と似たようなことができます。ちょっとバグあるみたいですが。Malbolge は実装不能だと思うので、これ以上なくキツいターゲットじ…

あとひとつ書き忘れてた

パーティクルプログラミング、Rubyは3文字連続のやつが1回と残りは全部2文字連続、てのができるんですが、Perlも全く同じ条件で書けると思っています。ただそれより厳しい条件が可能かどうかがよくわからない。

TRICK 2015

口頭でも言いましたが、今回は落選したものでも良いできだなーというのが多かったです。前回が価値が無いというほどでは全然ないんですけど、しかしちょっと差があったのは事実かなと。僕が高得点をつけたものについて コラッツ https://github.com/tric/tri…

printf 用のマクロの話

C言語 Advent Calendar 2015 - Qiita 向け 15年ほどC++書いてるんですが、どんどん自分の書くコードがbetter Cになっていっているような気がしています。どんどん先進性みたいなのが劣化している気がするので、特に高度なことは書かない…というか書けないで…

HITCON CTF 2015

今回は fuzzi3 というなんか卑怯な人の多さのチームに混ぜてもらいました。用事もあったのでゆるく参加するつもりが割と頑張ったけ。けどゆるく参加しても貢献度変わらなかったんじゃね?という感じの成果でした。チームがものすごいので4位。他人の成果に乗…

kati について

https://github.com/google/katikati について、ドキュメント書こう…と思っていたのですがなかなか進まないので、とりあえず日本語で書いてみることにしました。何書くかがあまり明確じゃないテーマなので、何書くか考えるのと英語考えるのを両方同時にやる…

あなたの知らない超絶技巧プログラミングの世界

奇書を頂きました。一応レビュアーとして参加したことになっています…が、掲示板かなにかと勘違いした人が雑談をして邪魔をしているな、という感じでした。浜地慎一郎という文字列が10回くらい出てくる残念な本です。もう少しマジメに説明すると、私がクソコ…

makelisp.mk

https://github.com/shinh/makelispLisp インタプリタを書きました。 GNU make で。https://github.com/shinh/makelisp/blob/master/makelisp.mkもちろん $(shell) や $(guile) は使わない縛りです。だいたい sedlisp や beflisp と似たようなことができます…

MMA CTF 2015

http://uecmma.github.io/mmactf/ja/なんかとても面白かった。21位。あまり気力の無い季節なので、 Pwn を避けて慣れないジャンルを解く感じで。ただスプラトゥーンを始めてしまったため、最後の20時間は問題読むくらいしかしてなくて28時間コンテストでした…

機械は人狼を見つけられるかな、の各国対応

ずいぶん昔に作った対人狼ベイジアンフィルタ、少し前に各国対応してたんですが、 @mr_konnさんのtweetで思い出したのでここに書いておきます。使いかたはサンプルURLを参照のことhttp://shinh.skr.jp/expwolf/人狼AIなんてなー10年近く前に俺が通った道だ……

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h