タグ

ブックマーク / mametter.hatenablog.com (11)

  • アニメ「Sonny Boy」の『難解』プログラムの解説 - まめめも

    『Sonny Boy』というアニメが放送されています。学校が異次元に漂流してしまい、超能力に目覚めた生徒たちがサバイバルしながら、さまざまな奇妙な現象の裏にあるルールを解き明かし、元の世界に変える方法を探す、というストーリーです。ルールが分かったあとで何度も見直したくなります。 anime.shochiku.co.jp さて今回、『Sonny Boy』に、プログラムを寄稿しました。プログラムでおもしろいCGを作ったとかではなく、プログラムの実行の様子そのものが『Sonny Boy』の5話の中で放送されました。 こういうプログラムです。 nankai.rb このプログラムがどういうものだったかを解説します。 どんなプログラム? 実行すると、「難解」という文字がほどけてなくなるアニメーションをします。 起動したらまず、プログラム自身が画面に表示されます。 しばらくしたら「難解」が左から右へほど

    アニメ「Sonny Boy」の『難解』プログラムの解説 - まめめも
    mongrelP
    mongrelP 2021/08/14
  • カロリーメイトリキッドのQuineを書きました - まめめも

    縁あって、カロリーメイトリキッドのプロモーション用にちょっとした Ruby プログラムを書かせてもらいました。 www.otsuka.co.jp ↑のリンクを開いて、cd .Quine したところにある CML_quine.rb がそれです。 cat CML_quine.rb とすると中身が見えます。ruby CML_quine.rb すると動きます。 CalorieMate-Liquid-Quine 実行してみましたか?サイト上で気楽に実行できるので、ぜひ試してみてください。 これがどういうプログラムなのか、簡単に解説しておきます *1 。 ローカルでの遊び方 サイト上で ruby CML_quine.rb をするだけでも楽しめますが、自分のパソコンに保存するとより楽しめます。 まず、cat CML_quine.rb した中身をまるごとコピーしてください。 n=2;で始まる行の頭から、'

    カロリーメイトリキッドのQuineを書きました - まめめも
    mongrelP
    mongrelP 2020/08/05
  • CPU律速なRuby/Pythonコードはデフォルト設定のdocker上で遅くなる - まめめも

    English version 要約 dockerはデフォルトでセキュリティ機構(Spectre脆弱性の対策)を有効にします。この影響で、RubyPythonのようなインタプリタは速度が劣化します。特にCPU律速なプログラムで顕著に遅くなります(実行時間が倍くらいになることがあります)。 現象 Rubyで1億回ループするコードを、直接ホスト上で実行する場合と、docker上で実行する場合で実行時間を比較してみます。 直接ホスト上で実行した場合: $ ruby -ve 't = Time.now; i=0;while i<100_000_000;i+=1;end; puts "#{ Time.now - t } sec"' ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux] 1.321703922 sec docker

    CPU律速なRuby/Pythonコードはデフォルト設定のdocker上で遅くなる - まめめも
    mongrelP
    mongrelP 2020/05/23
    Zen系でもある程度影響はあるはずだがどのくらいなんだろうか。IOはだいぶ差があるようだが。
  • 書籍『Ruby でつくる Ruby』が発売されます - まめめも

    ref: https://www.lambdanote.com/collections/frontpage/products/ruby-ruby おかげさまで、ASCII.jp で連載していた『Ruby で学ぶ Ruby』が紙のになる運びとなりました。わーい。『Ruby でつくる Ruby ― ゼロから学びなおすプログラミング言語入門』と微妙にタイトルが変わったので注意。 一番大切なことを先に言っておくと、書店に並ぶ予定はありません。ラムダノート株式会社という出版社の直販サイトで購入できます。アスキーじゃないの?と聞かないでください。追記:今はいろいろ購入方法が増えました。『Ruby でつくる Ruby』の購入方法をご参照ください。 ラムダノートは『型システム入門』のときにもお世話になった編集の鹿野さんが立ち上げた新しい出版社です。鹿野さんと高尾さんの編集コンビは、技術書については知る限

    書籍『Ruby でつくる Ruby』が発売されます - まめめも
    mongrelP
    mongrelP 2017/03/16
    電書ないのか…
  • 『Ruby で学ぶ Ruby』非公式あとがき - まめめも

    ref: http://ascii.jp/elem/000/001/230/1230449/ 「RubyRuby を作りながら Ruby を学ぼう!」という ascii.jp の連載、おかげさまでほぼ予定通りに無事に終わりました。執筆の経緯を書いておきます。 昨年の 6 月ごろ、「抽象によるソフトウェア設計」や「型システム入門」のときにおせわになった編集者の鹿野さんに声をかけて頂きました。「ふつうの Ruby 入門はもうたくさんあるので、ちょっと変わった Ruby 入門を書けないか」という話でした。 それを聞いた瞬間、「Ruby インタプリタの開発を通して Ruby を学ぶ」という構想が湧きました。Ruby は主に Web やテキスト処理を対象としているので、言語処理系や記号処理を題材にした入門は目新しそうだし、なによりそういうのに興味を持つ Ruby ユーザがもっと増えてほしい。

    『Ruby で学ぶ Ruby』非公式あとがき - まめめも
    mongrelP
    mongrelP 2017/01/18
  • [Ruby] Ruby 3.0 の特大の非互換について - まめめも

    タイトルは釣りです。すみません。Ruby 3.0 はかなり先の将来の話なので、最終的にどうなるかはわかりません。でも Ruby 3.0 に重大な変更が予定されているのは事実なので、一緒に考えて欲しいと思います。 immutable string literal Ruby 3.0 では文字列リテラルをデフォルトで immutable (破壊的変更不可) にする、という方針が『決定』しました。(Feature #11473: Immutable String literal in Ruby 3) つまり、次のようなプログラムが動かなくなります。(当チケットから少し改変して引用) sql = "SELECT #{sec_id}, pt.path, st.doc_count " sql << "FROM #{stats_tablename} AS st " #### ←ここで例外: can't m

    [Ruby] Ruby 3.0 の特大の非互換について - まめめも
    mongrelP
    mongrelP 2015/10/04
    っていうかRails「自体の」開発者以外は誰も幸せにならない未来にしか見えないんだけど。\「効果のレポートがなければ、デフォルトで「やらない」を選ぶというところは大きな違い」これね
  • 超簡単に Ruby プログラムを exe にする新しい方式 (構想) - まめめも

    exerb は 1.9 に対応してないし、いろいろオーバースペックだと思う。ocra はテンポラリフォルダに展開して実行するのがダサすぎて論外。(参考) ということで、すごくシンプルに Ruby プログラムを exe 化する方式を考えてみました。 デモ # t.rb puts "test!"これを exe にしたい。こうします。 C:\Ruby>copy /B ruby.exe+t.rb t.exe ruby.exe t.rb 1 個のファイルをコピーしました。実行する。 C:\Ruby>t test!動いた! つまり、インタプリタとスクリプトをファイル結合するだけで exe にできてしまいます。 実装 Ruby にパッチをあててビルドする必要があります。やってることは自己解凍書庫と同じ感じです。 ruby.exe のファイルサイズをバイナリリソースとして ruby.exe 自身に持たせて

    超簡単に Ruby プログラムを exe にする新しい方式 (構想) - まめめも
    mongrelP
    mongrelP 2012/05/10
    ほう
  • みんなのホームディレクトリ下の構成を教えてください - まめめも

    初めて Unix のアカウント貰ってログインしたとき、まっさらなホームディレクトリをどう使えばいいか悩みませんでした? もちろん好きにすればいいんですが、ベストプラクティスを知りたいなあと思いました。とりあえず自分のを晒してみます。 /home/*/local/ 個人用途のツールをインストールするディレクトリ。 apt にパッケージがないもの (あっても古すぎるもの) で、常用する確信があるものが対象。ちょっと試してみたいだけなら、後述の /home/*/work/local/ を使う。 個人用途のツールを /usr/local/ にインストールすることはない。むやみに sudo したくないので。*1 ぼくの場合は、主に ruby 関係のファイル (リリース版) が占める。 $ ls local bin include lib share $ ls local/bin bundle erb

    みんなのホームディレクトリ下の構成を教えてください - まめめも
    mongrelP
    mongrelP 2012/03/31
    めんどくさいのでGentooPrefix派(ぉ
  • Merry Quine-mas 2011 - まめめも

    今夜は W. V. Quine の命日です。 eval$s=%q(eval((%w(A="+_Sing_do,_re,_mi_to_the_mike!*z+_Do!*{+_Re!*|+_Mi!__OK !_Let's_sing_Silent_Night!*~+_Sxi~lent_|night!_~Hxo~lY_|night!*{+_All_is_ycal m,_zall_is_~bright,*x+_Round_You_zViyrxgin_~Moxther_~and_|Child!*x+_HolY_ziny fant_xso_~tenxder_~and_|mild,*{+_Sleep_in_}heav{enylY_zpea|ce,*z+_Slee~p_|in_ ~heav}en{lY_zpeace.**";T=-Math::PI/N= 2**10;F=proc{|n,t,a|n/=2;r=

    Merry Quine-mas 2011 - まめめも
  • イカ娘が Ruby を侵略したでゲソ - まめめも

    この記事は Functional Ikamusume Advent Calendar jp 2010 によって侵略されたでゲソ。 今回は Ruby を侵略したでゲソ。まずは gem をインストールするでゲソ。 $ gem install ikamusume Hello, world でゲソ。 # coding: utf-8 # ruby examples/hello.ikamusume で実行するでゲソ # 未だに 1.8 を使ってる愚かなる人類は -Ku を付ければいいんじゃなイカ? require "ikamusume" "Hello, world!\n" <= イカ娘! "H" <= "e" <= "l" <= "l" <= "o" <= "," <= " " <= "w" <= "o" <= "r" <= "l" <= "d" <= "!" <= "\n" <= イカ娘! $ ru

    イカ娘が Ruby を侵略したでゲソ - まめめも
    mongrelP
    mongrelP 2010/12/17
    こりゃひでえwww
  • Ruby とすてきな難読化 - まめめも

    (これは Ruby Advent Calendar jp: 2009 の 16 日目の記事です。) Ruby は読みやすいプログラムを簡単に書ける言語ですが、読みにくいプログラムも簡単に書けます。 今回は、Ruby でできるかんたんな難読化のテクニックを 4 つ紹介します。 1. Integer#to_s を使う方法 Integer#to_s *1 は、何進数として文字列化するかを引数で指定できます。普通は 2 、10 、16 くらいしか使わないと思いますが、実は 36 まで指定できます。 0.to_s(36) #=> "0" 1.to_s(36) #=> "1" ... 8.to_s(36) #=> "8" 9.to_s(36) #=> "9" 10.to_s(36) #=> "a" 11.to_s(36) #=> "b" ... 34.to_s(36) #=> "y" 35.to_s(

    Ruby とすてきな難読化 - まめめも
    mongrelP
    mongrelP 2009/12/17
    うまくすればgrass.rbとかできるのかしらwww
  • 1