タグ

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

  • ruby 0.62 のソースコードを復活させた - まめめも

    RubyKaigi の後夜祭で、akr さんが「327 種類の Ruby をビルドする方法 〜0.49 から 2.6.0-preview2 まで〜」という発表をされていました。 RubyKaigi 2018 After Party で話したスライドです: 「327 種類の Ruby をビルドする方法 ~0.49 から 2.6.0-preview2 まで ~」https://t.co/J5MXgM2PNN— Tanaka Akira (@tanaka_akr) 2018年6月4日 その中で、ruby-0.62.tar.gz と ruby-0.63.tar.gz のファイルは「gzip 形式じゃないといわれて展開できない」ということで、ビルド対象から外されていました。 いろいろやって、めでたくこの 2 ファイルを復活させることに成功しました。そのプロセスを書きます。 なお、壊れていたファイルも

    ruby 0.62 のソースコードを復活させた - まめめも
    UDONCHAN
    UDONCHAN 2018/06/09
  • [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 の特大の非互換について - まめめも
    UDONCHAN
    UDONCHAN 2015/10/05
    参考になる
  • 書籍『あなたの知らない超絶技巧プログラミングの世界』が 9 月 25 日に発売されます - まめめも

    以前告知していた書籍が、無事発売されることになりました!(技術評論社の公式ページ) アフィリエイト あなたの知らない超絶技巧プログラミングの世界posted with amazlet at 15.09.01遠藤 侑介 技術評論社 売り上げランキング: 3,000 Amazon.co.jpで詳細を見る どんな? テーマは「役に立たないプログラミングを楽しもう」です。言葉で説明するよりプログラム例を見た方が分かりやすいと思うので、代表的な過去作品にリンクしておきます。 Qlobe: アスキーアートの地球が回るプログラム Quine リレー: 100 のプログラミング言語を経由して自分自身を出力するプログラム ASCII Fluid: 80x25 の画面に収まる流体シミュレータ (動画) Merry Quine-mas 2010: 音楽再生しながら雪のアニメーションを行う自己出力プログラム (

    書籍『あなたの知らない超絶技巧プログラミングの世界』が 9 月 25 日に発売されます - まめめも
    UDONCHAN
    UDONCHAN 2015/09/02
    良い
  • The 22nd IOCCC: Most recyclable のエントリ - まめめも

    /*@@@sssss8]][[[[a#@@sss0['w}8|v}a<{av}a@{av}j>~{v}j8|c[sa?|{8[|#~} [j#@ra>~}sa!{>}|#r0l}sao8}[a'f8|r'8[j?x[?@<[j?@[j?@[s?>|;[[[j!>b'8'a@<cb@>? c$kg_@<b#0pf<#keab{_b0|c0#d#0#|'o{i<!8dr,f_{#rg{baiderh{er0}|'{0{ic.df?'o|j{lim 0'{i?#c0b|c#kg!}r!8lp1g!|i_ar<[#0g|h_}ieg>|_ah|sr<|i[[[}s#f@}[{@u~~~r@[|#|{ssss{a }|0~{?}|<{?}|qj?}s@[_}j0]][[[[a_@@@sssss<[[?>=sln5+a[so#,g-0aw;#*a>*abwa.*+da9=n?<6 -'7%71>e_?

    The 22nd IOCCC: Most recyclable のエントリ - まめめも
    UDONCHAN
    UDONCHAN 2014/01/13
  • TRICK 2013 (第一回 超絶技巧 Ruby 意味不明コンテスト in rubyKaigi) をやります - まめめも

    TAPL が無事出版されたので、そろそろ通常モードに。さっそくですが、@shinh さんに煽られて、Ruby で変態プログラミングのコンテストをやることになりました。 ref: https://sites.google.com/site/trickcontest2013/home/ja 一言で言えば IOCCCRuby 版という感じで、役に立たんけどなんか面白い Ruby プログラム作って競おう、という大会です。「変態 (褒め言葉) だー!」と言われそうな作品ほど強い。 応募がないと悲しいので、ぜひぜひご応募ください。5 月 18 日が締め切り、6 月 1 日に RubyKaigi 2013 で結果発表をする予定です。 最近の IOCCC は (ネタ枯渇気味なのか) 手の込んだ大作が多いですが、初期の IOCCC は単純だけどはっとさせるアイデア一発勝負が結構あって、ああいう感じのが

    TRICK 2013 (第一回 超絶技巧 Ruby 意味不明コンテスト in rubyKaigi) をやります - まめめも
    UDONCHAN
    UDONCHAN 2013/04/15
  • TAPL の訳本「型システム入門 -プログラミング言語と型の理論-」が発売されます - まめめも

    プログラミング言語の「型」の定番書と言われる Types and Programming Languages (通称 TAPL) の翻訳が、ついに 3 月 26 日に発売されます。 型システム入門 −プログラミング言語と型の理論−posted with amazlet at 13.03.01Benjamin C. Pierce オーム社 売り上げランキング: 598 Amazon.co.jpで詳細を見る (↑アフィリエイトなのでクリックするなよ!) (個人的に) 読んで欲しい人たちへ 「型」の教科書ということで、わりと Ruby の対極にあるような内容ですが、Ruby ユーザ (動的型付き言語しか知らない人) にこそ読んで欲しいと思ってます。 PHP しか知らない人が PHP の良さを語るのが滑稽なように *1 、型がないことのメリット・デメリットを語るには、気で型がある言語の考え方を

    TAPL の訳本「型システム入門 -プログラミング言語と型の理論-」が発売されます - まめめも
    UDONCHAN
    UDONCHAN 2013/03/03
  • みんなのホームディレクトリ下の構成を教えてください - まめめも

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

    みんなのホームディレクトリ下の構成を教えてください - まめめも
    UDONCHAN
    UDONCHAN 2012/03/31
    好みあるきがする。とはいうものの、俺のhomeは好み以前に荒れ放題なんだが…。
  • Ruby で FFT (高速フーリエ変換) を書いてみた - まめめも

    ref: 【ニコニコ動画】ミクをPCの再生音に合わせて自動で踊らせてみた ↑に触発されて波の処理をしたくなったので、Ruby で FFT (高速フーリエ変換) を書いてみました。 FFT とは、波の形を見て周波数とかを見抜く魔法のことです。数式とか考えたくないので、とにかく Ruby で書いてみました *1 。 def fft(a) n = a.size return a if n == 1 w = Complex.polar(1, -2 * Math::PI / n) a1 = fft((0 .. n / 2 - 1).map {|i| a[i] + a[i + n / 2] }) a2 = fft((0 .. n / 2 - 1).map {|i| (a[i] - a[i + n / 2]) * (w ** i) }) a1.zip(a2).flatten end これだけです。短いで

    Ruby で FFT (高速フーリエ変換) を書いてみた - まめめも
    UDONCHAN
    UDONCHAN 2011/11/26
  • Quine ruBy - まめめも

    略して QB 。 eval s||= %q(1;t= %w(s.gs ub!(/\e.* ?m/,"");[ [ 0x26e885c a844a879e27 a,519,48, 5 , 9],[20182686,600,48,5,1],[4366,611,48 , 5 ,15],[432803624050570,533,0]].map { | r,m,*d|s[m+=r%74,0],r="\e[#{d*";"}m", r /74while(r>0)};puts((z=32.chr)*5+"eval#{z *39}s||=\n#{z*5}%q(#{(1+n=s.to_i)%3}#{s[1 ..- 1]})\n\n"+z*9*n+"5YOV44GvUnVieWlzdO OBq +OB quOBo+OBpuOBj+OCjOOBo+OBpuOAgeOBjeOBo eOC k+OB qOOBi um

    Quine ruBy - まめめも
    UDONCHAN
    UDONCHAN 2011/04/13
    sugoi
  • イカ娘が 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 を侵略したでゲソ - まめめも
    UDONCHAN
    UDONCHAN 2010/12/16
  • /dev/dsp で音声を鳴らす方法 - まめめも

    超絶技巧 Ruby プログラミングの質疑で「どうやって音を鳴らしているのか」という質問があったので、自分のための記録を兼ねて簡単に紹介。 といっても Linux Sound programming with OSS API にある通り。Ruby で書くとこんな感じ。 # デフォルトでは 8bit 8000 Hz SampleSize = 256 SamplingRate = 8000 # ... 0:ラ 1:ラ# 2:シ 3:ド 4:ド# 5:レ 6:レ# 7:ミ 8:ファ 9:ファ# 10:ソ 11:ソ# 12:ラ ... tone = 3 # ボリューム: 0 〜 SampleSize/2 まで volume = 60 # 再生する長さ: 秒 length = 2 # 周波数: 基準のラは 440Hz 、1 オクターブ上がると倍になる freq = 440 * 2**(tone / 1

    /dev/dsp で音声を鳴らす方法 - まめめも
    UDONCHAN
    UDONCHAN 2010/09/02
  • Ruby でパターンマッチ - まめめも

    ref: 未来の国のアリス - d.y.d. で紹介されている implicit future が Ruby に欲しい! # promise を作る x = Promise.new a = [1, x, 2, x, 3, x] # 今はまだ値になっていない p a #=> [1, _promise_, 2, _promise_, 3, _promise_] # この promise は 42 に決めた! (代入ではないよ) x === 42 # x の箇所は勝手に 42 になっている p a #=> [1, 42, 2, 42, 3, 42] というのも、これがあれば Ruby でパターンマッチができる気がするんですよね。こんな感じに。 # 何にでもマッチする箇所には _ と書く (実体は Promise.new) def _ Promise.new end # + と定数だけからなる抽象

    Ruby でパターンマッチ - まめめも
    UDONCHAN
    UDONCHAN 2010/05/22
  • coverity やばい - まめめも

    PPL サマースクール 2008が告知されています。内容はおおいわさんのFail-Safe Cと、coverity 社の人による Thread Analyzer for Java とかいうツールの紹介だそうです。 それとは関係ないんですが、coverity 社がやってる Coverity Scan というサービスがあります。coverity 社の製品の Prevent という静的解析ツールのデモみたいなもので、Apache とか OpenSSL とかのオープンソースプロジェクトに対して Prevent で検査した結果を無償提供してくれています (参考) 。ただし脆弱性のヒントになる可能性があるので、各プロジェクトの開発者のみに公開。 ここぞとばかり Ruby のコミッタ権限を活用して Ruby の結果を見せてもらったんですが、これ、かなりすごいです。 鬼車が /x{1,1}/ でメモリリー

    coverity やばい - まめめも
  • 1