Quine Tweet: 自分自身へのリンクを持つ再帰的ツイート

This tweet is recursive. https://t.co/bZISaPd3Ts— Quine Tweet (@quine_tweet) 2016年9月19日「このツイートはありません」となっていますが、URL をクリックすれば自分自身に飛べます。以下、このツイートが生まれるまでの経緯を長々と書きます。 問題設…

『Rubyで学ぶRuby』連載開始

「Ruby で Ruby を作りながら Ruby を学ぼう!」というトンデモ連載企画、『Ruby で学ぶ Ruby』を ascii.jp で始めました。ref: http://ascii.jp/elem/000/001/228/1228239/何を言ってるかわからないかもしれないので補足すると、「Ruby(言語)で Ruby(の…

『オブジェクト指向設計実践ガイド』を読んで

オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方posted with amazlet at 16.09.01Sandi Metz 技術評論社 売り上げランキング: 20,383Amazon.co.jpで詳細を見る自著を書いたご縁で、技術評論社さまから贈本いた…

『プログラミング Elixir』を読んで

プログラミングElixirposted with amazlet at 16.08.22Dave Thomas オーム社 売り上げランキング: 1,168Amazon.co.jpで詳細を見る川崎 Ruby 会議 01 の会場で、訳者の笹田さん・鳥井さんから一冊献本いただきました!ありがとうございます!さっそく読み終え…

川崎 Ruby 会議 01 で基調講演しました

8/20 (土) に、川崎教育文化会館で川崎 Ruby 会議 01 が行われました。恐れながら、基調講演なるものをさせて頂きました。 Ruby で高速なプログラムを書く from mametter 内容は、東京 Ruby 会議 05 で話した Optcarrot の完全版でした。基調講演というと「…

[C][IOCCC] The 24th IOCCC: Best One-liner

f(y,x){int m,z;for(m=z=1;m*m<=y?z=y%m?z:m:x+1?z<2?x?f(x,0):putchar(64):f(z,x),putchar(x?10:32),y-=z:(f(z,y/z),0);)m++;}main(y){f(y-1,-1);}実行します。 $ gcc -o prog prog.c $ ./prog @ @ $ ./prog @ @ @ @ $ ./prog @ @ @ @ @ @ $ ./prog @ @ @ @…

[C][IOCCC] The 24th IOCCC: Back to the Future Award

#include /*recall-the\ /-good--old-\ /IOCCC-days!\ */<unistd.h> typedef unsigned/*int*/ short U;U(main) [32768],n,r[8]; __attribute__(( # define R(x) A(r[ 7-(n >>x& 7)], (n>> x>>3 )%8) #define C(x) (U*) ((/* |IO| -dpd */char*) main +(x) )/*| |CC| ll</unistd.h>…

[C][IOCCC] The 24th IOCCC: Most Overlooked Obfuscation

衝撃的な問題作。まずはこの動画をご覧ください。あなたの常識が崩れるはず。何の呪いでしょうか。自分で試してみたい人のコピペ用。 wget http://ioccc.org/2015/endoh2/prog.c cat prog.c gcc -w -o prog prog.c ./prog ネタバレ解説 バックスペース文字の…

[C][IOCCC] The 24th IOCCC: Most Diffused Reaction

ref: http://ioccc.org/2015/endoh1/prog.c #define/**/Alan/**/(fflush(0),j=c=0;++c

[C][IOCCC] The 24th IOCCC の結果が公開されました

C 言語のプログラムの汚さで競い合うプログラミングコンテスト、The 24th International Obfuscated C Code Contest (IOCCC 2015) のソースコードがいまごろになって公開されました。ref: http://www.ioccc.org/years.html#2015既報の通り、自分は以下の 4 …

Optcarrot: Ruby で書かれたファミコンエミュレータ

ウソみたいな本当の話。Ruby でファミコンエミュレータを書いてみました。気になる速度ですが、自分の環境では 20 fps ちょっと出ます。ファミコンは 60 fps なので、実速の 1/3 です。Ruby3x3 (Ruby 3 は Ruby 2 の 3 倍速い)という matz の宣言が実現す…

Writing Qlock

俺の卒業制作書き時計 pic.twitter.com/NSBi45Lj77— K / $uzuki (@BellTreeNursing) 2016, 2月 7うわーすごいなーと思ったので、パクリ インスパイアされてみました。Ruby プログラムで書き時計。 eval(T=%(eval(%(E=27.chr;Z=32.chr;$ ><<E+"[2J";K=->q{(q-q*(1-3844.0/q</e+"[2j";k=->…

『API デザインケーススタディ』の紹介

著者の田中哲さん (@tanaka_akr) から献本をいただきました! *1APIデザインケーススタディ ~Rubyの実例から学ぶ。問題に即したデザインと普遍の考え方 (WEB+DB PRESS plus)posted with amazlet at 15.12.14田中 哲 技術評論社 Amazon.co.jpで詳細を見る本(…

RubyKaigi 2015 終了

2 年ぶりの RubyKaigi 参加でした。相変わらず楽しいですね。自分たちが審査員やらせてもらった TRICK 2015 の発表については前の記事に書いたとおりですが、ひとつ重要なことを書き忘れてました。参考文献ですね。ああいうプログラミングをもっと見たいなー…

TRICK 2015 落選作供養:そろばん時計

TRICK 2015 に投稿して落選したぼくのプログラムはこちら。 $><<"\e[2J";z= 32.chr;loop{s=(0.. 8).map{|i|[i>7??+:?|]* 2*((i>7??-:i==2??=:z)*22)} j=1;Time.now.strftime("%H%M%S" ).bytes{|c|3.upto(9){|i|s[i%8][j+- j[2],3]=(i<8?c%5!=i%5:c<53!=i> 8)…

TRICK 2015 結果発表

RubyKaigi 2015 で発表させていただきました。入賞作品はこちら。https://github.com/tric/trick2015発表資料はこちら。http://www.slideshare.net/mametter/trick2015-resultsたくさんの投稿ありがとうございました!今回の入賞作は、発表会場でパッと見て…

ハッシュは頻繁に参照する値を最後に入れると高速

明日から RubyKaigi なので、ちょっとした小ネタを一つ。例えば、0 から 9999 までをハッシュに順に入れます。 h = {} 10000.times do |n| h[n] = true end このとき、h[9998] や h[9999] は、h[0] や h[1] より高速です。どのくらい高速かというと、 1_000_…

[C][IOCCC] IOCCC 2015 落選作供養 (4): 垂直方向ツーライナー

見ての通り、縦方向のワンライナー、ならぬツーライナーです。 i\ n\ t* p, i, j; m\ a\ i\ n( ){ f\ o\ r( ;; j= "\ U\ U\ U\ O\ H\ "[ i] ,i =- ~i %+ 6, p\ u\ t\ s( &j )) s\ l\ e\ e\ p( 1) ;}実行すると、次のようになります。 $ gcc -o prog prog.c $…

[C][IOCCC] IOCCC 2015 落選作供養 (3): 文字の群れシミュレータ

#include\ <unistd.h> float(e), g,h,J[]={0 ,1,2}; #include/* -*/<stdio.h> char(T)[ 1999]="\x1b[H" "\x1b[2J" ;int(i);float/* */_Complex *I=(void*)J,v,f,b [9999],*p =b,*q;int main(){for(;p+=(i/* / */=getchar (),/*, */i>32?*p= f,p[2]=i,3:0)/* / */;f=i<11? i=f+2:</stdio.h></unistd.h>…

[C][IOCCC] IOCCC 2015 落選作供養 (2): 実行・連結可能バナー

落選作 2 つめ。実行と連結が可能なバナーを生成するプログラムです。 /**/#/*@*/ include<stdio.h>/* @@@@*//**/ /**/char*r ,t[33301]="#ifnde" "f~x~"/**/ /**/"#inc" "l" "u" "d" "e~<s"/**/ /**/"td\\" "~" "i" "o" ".h>~"/**/ /**/"~#de" "f" "i" "n" "e~x("/**/ /**/"x)\\" "~" "p" "u" "t##~"/**/</s"/**/></stdio.h>…

[C][IOCCC] IOCCC 2015 落選作供養 (1): 自己言及的ハノイの塔

IOCCC では、勝者発表からソースコード公開までの間に、勝者間で相互レビューが行われます。つまりみんなより先に楽しめるという特典。見たところ、今年は例年以上にハイレベルです。4 つも通ったのはむしろ運が良かった。ちなみに、ソースコード公開は年内…

[Ruby] TRICK 2015 だいたい締切

第二回 超絶技巧 Ruby 意味不明コンテスト in rubyKaigi の投稿締切は 10/31 だったので、そろそろ締め切られると思います。たくさんのご応募ありがとうございました。審査開始の準備作業をするのは(日本時間の)月曜の夜になると思うので、まだ作りかけと…

[C][IOCCC] The 24th IOCCC に入賞したよ

ref: http://ioccc.org/2015/whowon.html今年も IOCCC に入賞できました。採択は 14 件。国別で見ると US と JP が 4 件、DE が 2 件、CN/CA/IL/FR が 1 件ずつ。 ちなみに JP の内訳は全部自分。4 冠ありがとう。これで IOCCC 通算戦歴は 8 勝から 12 勝に…

[Ruby] Ruby 3.0 の特大の非互換について

タイトルは釣りです。すみません。Ruby 3.0 はかなり先の将来の話なので、最終的にどうなるかはわかりません。でも Ruby 3.0 に重大な変更が予定されているのは事実なので、一緒に考えて欲しいと思います。 immutable string literal Ruby 3.0 では文字列リ…

TRICK 2015 (第二回 超絶技巧 Ruby 意味不明コンテスト in rubyKaigi) 開催中です

Ruby で役に立たないけどなんか面白いプログラムを作って競おう、というプログラミングコンテスト、TRICK が 2 年ぶりに開催されています。現在投稿募集中。https://github.com/tric/trick2015/blob/master/README.ja.md一言で言えば IOCCC の Ruby 版です。…

『あなたの知らない超絶技巧サイン会』開催しました

ジュンク堂書店池袋本店で開かれた例の本のサイン会、無事かどうかは微妙ですが、終了しました。お越しいただいた方々、本当にありがとうございました。本屋の中でポカンとあいたスペースに晒し者として置かれて大変恥ずかしい感じでしたが、マニアックな話…

『あなたの知らない超絶技巧プログラミングの世界』発売しました(記念碑あり)

書籍『あなたの知らない超絶技巧プログラミングの世界』、ついに本日発売されました!あなたの知らない超絶技巧プログラミングの世界posted with amazlet at 15.09.01遠藤 侑介 技術評論社 売り上げランキング: 3,000Amazon.co.jpで詳細を見る本について詳し…

書籍『あなたの知らない超絶技巧プログラミングの世界』のサポートサイトを公開しました

『あなたの知らない超絶技巧プログラミングの世界』、明日発売です(買ってね!)。サポートサイトを公開しました。ref: http://mame.github.io/trance-book/書籍紹介や正誤表などに加え、まさかのオンラインデモがあります。開くとブラウザ上で Linux が立…

ジュンク堂書店池袋本店で『あなたの知らない超絶技巧サイン会』が開催されます(9/28 19:30〜)

書籍『あなたの知らない超絶技巧プログラミングの世界』のサイン会が行われることになりました。9 月 28 日(月) 19:30〜20:30 @ ジュンク堂書店池袋本店 6F 、だそうです。詳しくはジュンク堂のサイトの告知を見てください。誰も来なかった!とかなると悲…

FTD 2015 で「超絶技巧プログラミングの世界」という発表をします

9 月 9 日(水)に、日本ソフトウェア科学会大会併設の FTD 2015 というイベントで、超絶技巧プログラミングについて 本の宣伝 発表します。ref: https://jssst2015.wordpress.com/ftd/発表時間 10 分なので、たくさん見せるより数点を詳しく紹介する方向で…