rubyに関するbamch0hのブックマーク (24)

  • Bignumの10進文字列化を速くしよう - なるせにっき

    んー、花粉症がひどいし、ここはぱーっとRubyでも高速化して景気づけしたいですね。 先日の日記 でRubyとCしか読めないこの日記の読者の皆さんも、アセンブラに親しみが持てるようになったのではないかと思います。せっかくなので、引き続きこの方向で頑張ってみましょう。 さて、3年前、akrさんが一度はマージしながらも断念した、Use 128 bit integer type in Bignumという案件があります。今日はここから始めます。同時期に公開された資料に「プログラミング言語 Ruby に GMP を組み込む」というものがあります。読むとakrさんの思想の一端が垣間見え、それはしばしばRubyの仕様に影響を与えたりしなくもないのですが、それはまた別の話。どうも1000bitあたりの基数変換(2進→10進 文字列化) が遅かったみたいですね。 しかし、冷静になって考えてみましょう。32bi

    Bignumの10進文字列化を速くしよう - なるせにっき
    bamch0h
    bamch0h 2016/03/15
  • RubyKaigi 2015, 11-13 Dec. #rubykaigi

    There will be JA -> EN interpreters available at "JA" labeled talks.

    RubyKaigi 2015, 11-13 Dec. #rubykaigi
    bamch0h
    bamch0h 2016/02/07
  • rubyで定義元メソッドへジャンプ ctags+vim-tags - 気軽に楽しくプログラムと遊ぶ

    ネットに情報はあるけど、サクッと設定できなかったので 情報をまとめておきます。 最新ctagsをインストール Mac標準のctagsでは上手く動作しない場合があるとのことなのでインストール brew install ctags vim上での使い方 # ジャンプしたい箇所にカーソルを当てて Ctrl + ] # ジャンプ元に戻る Ctrl + t # 該当結果が複数ある場合に、リスト表示 :tjump # 明示してジャンプ(例:Userモデルにジャンプ) :tag User vim-tagsの設定 vim-tagsでファイル保存時に自動で、tagsファイルを更新できるようにする。 .vimrcへ以下の設定を追加する。 NeoBundle 'szw/vim-tags' let g:vim_tags_project_tags_command = "/usr/local/bin/ctags -f

    rubyで定義元メソッドへジャンプ ctags+vim-tags - 気軽に楽しくプログラムと遊ぶ
    bamch0h
    bamch0h 2015/12/11
  • [Ruby] よく使うRspecのレシピ集(Rspec3.3) | DevelopersIO

    モバイルアプリサービス部の五十嵐です。 最近Rspecをガッツリ書いたので、調べたことをユースケースごとにまとめてみます。 対象バージョンはRspec3.3です。 リフレクション Rubyのリフレクションを使用したテストの書き方です。 インスタンス変数を操作したい インスタンス変数を取得したい場合はinstance_variable_get、設定したい場合はinstance_variable_setを使います。また、instance_variable_setでモックを仕込むことでレシーバオブジェクトのインスタンス変数や動作を操作することができます。 obj = Person.new(name: 'Hoge') # initializerで@nameにnameがセットされる想定 name = obj.instance_variable_get('@name') expect(name).to

    [Ruby] よく使うRspecのレシピ集(Rspec3.3) | DevelopersIO
    bamch0h
    bamch0h 2015/11/13
  • gemを探す知恵 - Qiita

    gem 探すときにとりあえず The Ruby Toolbox を見るんだけど、 The Ruby Toolbox は昔からある gem が上位に来てしまう傾向にあって、 後発の gem は埋もれてしまいがちだ。 わりと gem を探していると、あまり使われてない gem や、新しく出来た gem であっても 設計がシンプルだったりしていい感じの物があるので、そういうやつを効率的に見つけたい。 github の Advanced search が便利だった github の検索結果ページの左下に Advanced search へのリンクがある。 ここで条件を細かく指定して検索すると効率よく gem を探すことができた。 とりあえず次のような条件で検索した。 言語を Ruby に限定 Star 数が 100 を超えている 最終コミットが今年中に行われている 拡張子が gemspec のファ

    gemを探す知恵 - Qiita
    bamch0h
    bamch0h 2015/11/12
  • Ruby on Railsを仕事にしていくための第一歩 - 酒と泪とRubyとRailsと

    最近仕事Railsコードレビューをする時間が長くって、いろいろ指摘するんですが、 Railsって「Railsチュートリアル」には書いていないのに覚えないと仕事にならないこと多すぎだなと気付かされます。 どこでどんなふうにすれば、プロになろうとしている人が最短距離で知識を獲得できるかはわからないですが、 今思っている特に大事だなと思うことつらつらと書いていきます。 😀 プログラミングの重要な要素まず、Railsの前にプログラミングで全般的に特に重要と思っている要素を紹介します。 - リーダブルなコード - ネーミングルールについて - 言語・フレームワークのルール - 変数のスコープについて - プロジェクトの設計思想 - オブジェクト指向・コードの再利用性 - 正しいテストケースを作る プロジェクトによって変わるので、すべては書きませんが、ぜひ意識してどこを学ぶべきかを考えてみてくだ

    Ruby on Railsを仕事にしていくための第一歩 - 酒と泪とRubyとRailsと
  • Vim で Ruby を書くならこれを使え! - pockestrap

    私は開発環境を整えるのが大好きなのですが、今まであまり発信をすることがなかったのでこの記事を書きました。 少しでも VimRuby を書くのが快適になれば幸いです。 なお、煽り気味のタイトルですが、それだけ私の独断と偏見で便利だと思っているものです。 私は Ruby では Rails をメインに書いているので、Railsを書いている人には特に便利かも知れません。 mikutter plugin も時々書きます。 この記事では、Ruby に特化したプラグイン/設定の紹介をしたいと思います。 汎用的なものに関しては、簡単な説明とレポジトリへのリンクに留めます。 また、インストール方法は、NeoBundleを使用する方法を紹介します。 私がNeoBundleを使用しているので。 github.com neocomplete 用 Ruby 辞書 github.com neocomplete

    Vim で Ruby を書くならこれを使え! - pockestrap
  • 「RSpecとMinitest、使うならどっち?」という発表をしてきました #kanrk06 - give IT a try

    はじめに 去る2015年7月11日、関西Ruby会議06で「RSpecとMinitest、使うならどっち?」という発表をしてきました。 今回ではこの発表に関する情報と、参加した感想等をあれこれ書いてみます。 発表の前に客席の写真を撮らせてもらいました。会場でかい! 発表のスライド 今回使ったスライドはこちらです。 RSpecとMinitest、使うならどっち? / #kanrk06 - Speaker Deck 発表の動画(当は練習風景) イベント当日の動画はありませんが、発表の前に練習用に撮ったスクリーンキャストがあります。(約25分) 発表内容はほとんど同じなので、当日イベントに参加していない人もこれを見ればだいたい内容がわかると思います。 RSpecとMinitest、使うならどっち? #kanrk06 - YouTube 今回の発表で工夫した点や気をつけたポイントなど 事実と意見

    「RSpecとMinitest、使うならどっち?」という発表をしてきました #kanrk06 - give IT a try
    bamch0h
    bamch0h 2015/07/13
  • AASM - classの状態遷移をスマートに実装するためのgem (Ruby, Active Record, Sequel, Mongoid) - Qiita

    AASM - classの状態遷移をスマートに実装するためのgem (Ruby, Active Record, Sequel, Mongoid)RubyRailsActiveRecord AASM - Ruby state machines ここを参考にしました。 https://github.com/aasm/aasm/blob/master/README.md https://github.com/aasm/aasm/blob/master/CHANGELOG.md ※2014年に記事を投稿してから、細々と継続的にアクセスがあるようです。AASMの仕様は投稿当時と最新版でもそれほど変わっていないようですが、ご利用にあたっては必ず上記GitHubのREADMEとCHANELOGの確認をお願いします。 概要 AASMRubyのclassに有限オートマトンを追加するライブラリ。2014年

    AASM - classの状態遷移をスマートに実装するためのgem (Ruby, Active Record, Sequel, Mongoid) - Qiita
    bamch0h
    bamch0h 2015/05/17
  • Rubyプログラミングが快適になるVim環境を0から構築する - Qiita

    より快適なVim × Ruby環境を目指して構築したvim環境について。 0からでも構築できるように整理した。 やること 最初にRubyVim、その他必要なパッケージをガシガシインストールする。 その後、設定した下記機能について実際の操作例を見ていく。 自動コード補完ができるようにする(Rsense/neocomplete) Vim上で静的解析ができるようにする(Rubocop/syntastic) Vimからリファレンスを閲覧できるようにする(vim-ref/vim-ref-ri) メソッド定義元へのジャンプができるようにする(ctags/vim-tags) 構文終わりのキーワードを自動入力できるようにする(vim-endwise) OSはLinux(CentOS6.5)を想定。検証環境は以下のとおり。 $ uname -a Linux vagrant-centos65.vagrant

    Rubyプログラミングが快適になるVim環境を0から構築する - Qiita
    bamch0h
    bamch0h 2015/03/09
  • ブロックなしRubyをやろうとすると関数型プログラ…うーんリストプロセッ、えーと感じ感じ - Qiita

    ブロックなしRubyをやることでRubyを関数型言語、というかLispっぽくやっていくことについて考えてみます。なお筆者はLispあんまり詳しく無く、「リストに対する操作の適用をネストさせてなんかいい感じにするやつ」くらいの認識で言いました、ごめん。 ブロックなしRuby初級 xs = %w`akechi kokoro itoh chika ayase ena koshimizu sachiko` xs.map{|it|it.capitalize} #=> ["Akechi", "Kokoro", "Itoh", "Chika", "Ayase", "Ena", "Koshimizu", "Sachiko"]

    ブロックなしRubyをやろうとすると関数型プログラ…うーんリストプロセッ、えーと感じ感じ - Qiita
    bamch0h
    bamch0h 2015/01/21
  • Redmine Webrickちゃんがネットワーク経由で遅い何とかして

    Windows(関係ないけど)にRedmineを入れた。DBSQLite、ServerはWebrick。 ローカルからlocalhost:3000でアクセスしたときは軽快なのに、外部からネットワーク経由でアクセスするとクリックごとに3~5秒待たされる~~~~。同じサーバで動いてるApacheはそんなことないのに、、でもログ見るにレスポンスは数十msで捌いている。という摩訶不思議な状況。 原因は名前解決。Webrickの設定で名前解決しないようにしてしまったら解決。 ↓を参考にさせて頂きました。 webrickオプション:DoNotReverseLookup => trueをすると 早くなります。この設定は名前解決をしないそうです。 require 'webrick' opts = { : BindAddress => IP, : Port => PORT, : DocumentRoo

    bamch0h
    bamch0h 2015/01/08
  • ソースコード・リーディングしよう![GemJam][ActiveSupport]

    @h5y1m141さんに誘っていただいて、 @hitomi_twさんや shiro615さんと一緒に、RubyGemsのソースコードリーディング勉強会『GemJam』を行いました。 今回は最近仕事でソースコードを読む時間が増えてきて、苦労していたのでソースコード・リーディングのモチベーションアップやコツを調べつつ、いつもRailsでお世話になっていた『ActiveSupport』 のソースコードリーディングに挑戦してみました。 (12/28 12:10) 勉強会のアウトプットを更新しました。全員アウトプットしたのはすばらしいです 🎉 プログラムのモチベーションこれは経験談からくる話ですので、これが正解ということでないッス。どちらかというと、今までエンジニアとして経験してきた中で、僕個人はこう思っていますという観点で書きました! プログラミングは継続することが一番大切プログラミング経験ゼロ

    ソースコード・リーディングしよう![GemJam][ActiveSupport]
    bamch0h
    bamch0h 2014/12/28
  • (あなたの周りでも見かけるかもしれない)インスタンス変数の間違った使い方 - Qiita

    (2021-8-28追記) この記事の改訂版を書いてみました。改訂版の方が易しい内容になっているので、プログラミング初心者の方はこちらを参考にしてみてください。 はじめに:「引数があるよりは、ない方が良い」? 先日、同僚の西見さん(@mah_lab)がこんな技術ブログを書いていました。 インスタンスメソッドとクラスメソッドはどのようにして使い分けるべきか?(Rubyの場合) 同じ内容を僕だったらどういうふうに書くかな~?と思って、ちょっと書き始めてみたんですが、わかりやすく実践的な説明をするのは意外と難しく、内容も西見さんのブログとほぼ同じになりそうだったので、途中で断念しました。 というわけで、インスタンスメソッドとクラスメソッドの使い分けが未だにあやふやだという方は、ぜひ西見さんのブログを読んでみてください! ・・・なんですが、1点だけ気になる点がありました。 それはインスタンスメソッ

    (あなたの周りでも見かけるかもしれない)インスタンス変数の間違った使い方 - Qiita
    bamch0h
    bamch0h 2014/11/25
  • インスタンスメソッドとクラスメソッドはどのようにして使い分けるべきか?(Rubyの場合) | mah365

    Rubyといったオブジェクト指向言語を学ぶと、メソッドの定義方法としてインスタンスメソッドとクラスメソッドという2通りの定義方法があることを学ぶと思います。しかし、言語自体のガイドブックには「定義方法にインスタンスメソッドとクラスメソッドがある」と書いてあるだけで、大抵その使い分けについては書かれていません。 そういう訳で、このエントリではその使い分けについて少し考えてみたいと思います。理論的に厳密な使い分けを目指すというよりは、そもそも使い分けの検討が全くつかない!という方に向けて、その指針の一助となることを目指します。 インスタンスメソッドとクラスメソッドとはそもそものところ、Rubyといった「オブジェクト指向の考え方」を実装した言語の機能です。その機能がなぜあるのか?というそもそものところは、オブジェクト指向の考え方にさかのぼることになります。 そこで、インスタンスメソッドとクラスメ

    インスタンスメソッドとクラスメソッドはどのようにして使い分けるべきか?(Rubyの場合) | mah365
    bamch0h
    bamch0h 2014/11/24
  • Test::Unitでテストを書く - Qiita

    テストの書き方 基 今までのTest::Unitと変わらないので,classで書く.ただ,昔のTest::Unitとは違い,TestCase毎に呼ばれるstartupやshutdownなどが増えている. require 'test/unit' class TestSample < Test::Unit::TestCase class << self # テスト群の実行前に呼ばれる.変な初期化トリックがいらなくなる def startup p :_startup end # テスト群の実行後に呼ばれる def shutdown p :_shutdown end end # 毎回テスト実行前に呼ばれる def setup p :setup end # テストがpassedになっている場合に,テスト実行後に呼ばれる.テスト後の状態確認とかに使える def cleanup p :cleanup

    Test::Unitでテストを書く - Qiita
    bamch0h
    bamch0h 2014/10/16
  • RubyKaigi 2014 で出会った神ツールのメモ - すがブロ

    RubyKaigi 2014、楽しかったし、学びがあって行って良かったなぁと思いました(小並感すぎる)。 淡々とメモしておくよ benchmark-ips ベンチマークの高機能版。ウォームアップとして何回か走らせてから実行したり、5秒とか100msで何回実行できるかとかを計測できるっぽい synvert フォーマッターらしい。Rubyのバージョンがあがってシンタックスを変更したほうがよかったりする場合に変更してくれる Railsバージョンもあるっぽいけど、このセッション聞いてなかったので詳しくはわからない(あとで調べる) peek-performance_bar View や SQL等でかかった時間を表示するプロファイラ rack-mini-profilerと似てる気がするけど、こっちも試してみたい stackprof Ruby 2.1で追加された rb_profile_frames を使

    RubyKaigi 2014 で出会った神ツールのメモ - すがブロ
    bamch0h
    bamch0h 2014/09/23
  • Ruby製サードパーティライブラリgemのトレンドを知るには「BestGems.org」がベスト

    ─質問1─ Ruby製サードパーティライブラリ、要はgemで、何が人気なのかってこと、手っ取り早く知りたいんですけど。 ─回答1─ RubyGems.orgのstatsページを見てください。 ─質問2─ えっ?これだけ?この辺は万年上位で固定でしょ。もうちょっと俺の知らないバラエティに富んだものに出会いたいんだけど。俺、Rails用ないし。 ─回答2─ カテゴリー別ならThe Ruby Toolboxがあります。 The Ruby Toolbox - Terminal Coloring ─質問3─ あんた、俺の質問ちゃんと聞いてるの?カテゴリー別なんて言ってないし。それに、ここのカテゴリーってなんか俺的に信用ないんだよね。取りこぼし多いっていうか..。俺のgem出てこないっていうか..。 ─回答3─ GitHubTrendingでここ最近の人気リポジトリが分かります。 Trending

    Ruby製サードパーティライブラリgemのトレンドを知るには「BestGems.org」がベスト
    bamch0h
    bamch0h 2014/08/09
  • Rest api - Redmine

    Status legend: Stable - feature complete, no major changes planned Beta - usable for integrations with some bugs or missing minor functionality Alpha - major functionality in place, needs feedback from API users and integrators Prototype - very rough implementation, possible major breaking changes mid-version. Not recommended for integration Planned - planned in a future version, depending on deve

    bamch0h
    bamch0h 2014/08/08
  • PythonからREST API経由でRedmineにチケットを登録する(XML,JSON使用)

    RedmineにREST APIがあることを知りました。 http://www.redmine.org/projects/redmine/wiki/Rest_api Pythonから使ってみます。 APIキーの準備 サンプルとして、チケットの登録をやってみたいと思います。 データの参照には不要っぽいのですが、登録にはAPIキーが必要なので、 先に作っておきます。 [管理] - [設定]から、[認証]タブを選択します。 「RESTによるWebサービスを有効にする」という項目があるのでチェック。 保存を実行します。 右上の[個人設定]を選択。 「APIアクセスキー」という項目が表示されるので、「表示」をクリックします。 そうすると、そのユーザーのAPIアクセスキーが表示されます。 APIアクセスキーはユーザーごとに発行されるようです。 使用するアクセスキーに該当するユーザー名でチケットの登録が

    PythonからREST API経由でRedmineにチケットを登録する(XML,JSON使用)
    bamch0h
    bamch0h 2014/08/08