タグ

ブックマーク / blog.tmtms.net (9)

  • オープンソースの定義について - tmtms のメモ

    こんな Togetter が話題になってた。 togetter.com オープンソースソフトウェアはOSIに認められたオープンソースライセンスで配布されるソフトウェアのことであり、それ以上でもそれ以下でもない これに違和感が。「オープンソースの定義(OSD)」に準拠したライセンスのソフトウェアであればオープンソースだったような記憶があるんだけど、「OSIに認められたオープンソースライセンス」である必要はあるんだっけ? まあ実際にOSDに準拠したオレオレオープンソースライセンスを作って「オープンソースでござい」と言ったとしてもなんか怪しいし、堂々とオープンソースを名乗りたいならちゃんとOSI認定のライセンスを使うか、そのライセンスをOSI認定してもらえよって感じなんでどうでもいいんだけど、定義の問題として。 オープンソースの定義 を見ると 「オープンソース」とは、単にソースコードが入手できる

    オープンソースの定義について - tmtms のメモ
    Nyoho
    Nyoho 2020/09/15
  • Ruby 2.7 の変更点 - パターンマッチング - tmtms のメモ

    Ruby 2.7 アドベントカレンダーの2日目の記事です。(更新が遅いのは仕様です) qiita.com パターンマッチング パターンマッチングは Ruby 2.7 での目玉機能と言ってもいいでしょう。 ただし現時点では experimental で、使用すると次のメッセージが出力されます。 warning: Pattern matching is experimental, and the behavior may change in future versions of Ruby! パターンマッチングは配列やHashなどの構造のパターンとオブジェクトをマッチングするためのものです。 パターンマッチングは case...in 構文を使用します。 case に指定したオブジェクトのパターンが、in で指定したパターンと一致していれば、パターンに指定した変数に対応する値が代入されて、in 部

    Ruby 2.7 の変更点 - パターンマッチング - tmtms のメモ
    Nyoho
    Nyoho 2019/12/04
  • Ruby 2.7 の変更点 - 復活したものや入りそうで入らなかったもの - tmtms のメモ

    Ruby 2.7 アドベントカレンダーの1日目の記事です。 qiita.com Ruby は毎年クリスマスにバージョンが上がります。 今年も順調にいけば 12/25 に Ruby 2.7 がリリースされる予定です。 2.7 がリリースされるまで毎日少しずつ変更点を見ていきます。 ソースは NEWS(とか git log とか)です。 Ruby 2.7 までに復活したもの キーワード引数のハッシュのシンボルでないキー flip-flop 構文 Ruby 2.7 で入りそうだったけど入らなかったもの パイプライン演算子 メソッド参照演算子 Ruby 2.7 までに復活したもの キーワード引数のハッシュのシンボルでないキー Ruby 2.6.0 で キーワード引数のハッシュのキーがシンボルでない場合はエラーになったんですが、2.6.2 でその挙動が取り消されてエラーにならなくなりました。 2.7

    Ruby 2.7 の変更点 - 復活したものや入りそうで入らなかったもの - tmtms のメモ
    Nyoho
    Nyoho 2019/12/02
  • Ruby 2.6 の変更点 - Binding, flip-flop - @tmtms のメモ

    Ruby2.6アドベントカレンダーの21日目の記事です。 qiita.com Binding Binding#source_location 追加 flip-flop 非推奨 Binding Binding#source_location 追加 https://bugs.ruby-lang.org/issues/14230 binding のファイル名と行番号を返します。 1: def hoge 2: binding 3: end 4: hoge.source_location #=> ["hoge.rb", 2] flip-flop 非推奨 https://bugs.ruby-lang.org/issues/5400 NEWS から漏れてたのが 2.6.0-rc2 で追記されたので追加。 個人的には flip-flop は存在は知っていたものの1回も使ったことないし、構文がよくわからない

    Ruby 2.6 の変更点 - Binding, flip-flop - @tmtms のメモ
    Nyoho
    Nyoho 2018/12/21
  • Ruby 2.5 の変更内容 その1 - tmtms のメモ

    Rubyは毎年クリスマスにバージョンアップされます。 今年も12/25にRuby 2.5がリリースされました。 https://www.ruby-lang.org/ja/news/2017/12/25/ruby-2-5-0-released/ https://docs.ruby-lang.org/en/trunk/NEWS.html を元に変更内容を調べてみました。 前に書いたのは 2.5.0 preview1 時点のものでしたが、それから結構変わっています。 長くなったので3つにわけてます。 全般 - このページ 組み込みライブラリ 標準添付ライブラリ 個人的にはブロック内の rescue/else/ensure に begin, end を書かなくてよくなったのが嬉しいです。 言語仕様 トップレベル定数参照 rescue/else/ensure 節 文字列内式のRefinement U

    Ruby 2.5 の変更内容 その1 - tmtms のメモ
    Nyoho
    Nyoho 2017/12/30
  • Ruby の Timeout の仕組み - tmtms のメモ

    Ruby で長い時間掛かるかも知れない処理のタイムアウトを行うにはこんな感じにします。 require 'timeout' begin Timeout.timeout(3) do # 3秒でタイムアウト hoge # 何かの処理 end rescue Timeout::Error puts 'なげーよ' # タイムアウト発生時の処理 end Timeout.timeout はブロック開始時にスレッドを作成し、そのスレッドで指定された秒数だけ sleep して、sleep から復帰してもまだブロックが終わってなければ作成元のスレッドに対して Timeout::Error 例外を発生させます。 指定時間以内に処理が終わる場合: timeout(X) │ スレッド作成 ─┐ │ │ ブロック実行 sleep X │ │ スレッドkill→ 🕱 │ timeout復帰 指定時間以内に処理が終わら

    Ruby の Timeout の仕組み - tmtms のメモ
    Nyoho
    Nyoho 2016/08/26
  • RSpec をやめて Test::Unit に戻る - tmtms のメモ

    最近の RSpec は、それまで obj.stub(hoge: value) と書けたものが、 allow(obj).to receive(:hoge).and_return value と書かないといけなくなったりとか、正気の沙汰とは思えないような変更をしたりするので、何年かぶりに Test::Unit を使ってみようとリハビリ中です。 RSpec は、テストケースを入れ子にできたり、テストケースや example がクラスやメソッドではなく、文字列で自由に書くことができたりしたのが良かったのですが、最近の Test::Unit ではそれもできるようになっています。 [ruby-list:48926] [ANN] test-unit 2.5.2 このリリースはとみたさんに使ってもらえるように改良したリリー スです。新しく追加した--locationはRSpecの--line_number

    RSpec をやめて Test::Unit に戻る - tmtms のメモ
  • メールアドレスの正規表現 - tmtms のメモ

    たまにメールアドレスの形式を正規表現で表すのは不可能とかというのを目にするのですが、そんなことはありません。入れ子がなければたいていの文字列の形式は正規表現で表すことができます。 ということで、RFC5321, 5322 からメールアドレスの正規表現を書いてみました。 /\A([0-9a-z!\#$%&'*+\-\/=?^_`{|}~]+(\.[0-9a-z!\#$%&'*+\-\/=?^_`{|}~]+)*|\"([\x20\x21\x23-\x5b\x5d-\x7e]|\\[\x20-\x7e])*\")@[0-9a-z]([0-9a-z-]*[0-9a-z])?(\.[0-9a-z]([0-9a-z-]*[0-9a-z])?)*\z/i ちょっと長いですけど、最近の Ruby だと (?<hoge>) と \g<hoge> を使うことで、同じ正規表現の繰り返しを簡単に書くことができる

    メールアドレスの正規表現 - tmtms のメモ
    Nyoho
    Nyoho 2014/09/10
  • Sequel について (その1) - tmtms のメモ

    最近 Sequel というライブラリを触ってるので簡単にまとめてみます。 Sequel Sequel は Ruby の構文で SQL クエリを記述するためのライブラリです。 SQL の文法が嫌いな自分には持って来いです。 RDB 毎の差異も吸収してくれます。 自分は MySQL しか知らないので、以下は MySQL での例です。 インストール % gem install sequel % gem install ruby-mysql 接続 DB = Sequel.connect('mysql://user:password@hostname:port/dbname') # または DB = Sequel.mysql('dbname', :host=>'hostname', :user=>'user', :password=>'password', :port=>'port') 上の例では定

    Sequel について (その1) - tmtms のメモ
    Nyoho
    Nyoho 2013/10/28
  • 1