タグ

関連タグで絞り込む (152)

タグの絞り込みを解除

rubyに関するhiroyukimのブックマーク (94)

  • Home — JRuby.org

    Recent News JRuby 9.4.8.0 Released The JRuby community is pleased to announce the release of JRuby 9.4.8.0. Homepage: https://www.jruby.org/ Download: https://www.jruby.org/download JRuby 9.4.x targets Ruby 3.1 compatibility. Thank you to our contributors this release, you help keep JRuby moving forward! @edipofederle, more... Awards InfoWorld 2010 Bossie Awards: Best of Open Source Software InfoW

  • (翻訳) Ruby 2.2 のシンボル GC - FIVETEESIXONE

    Ruby 2.2 の新機能にシンボル GC というものがあります。 正直、「え、シンボルって GC されないから速いんじゃないの?なのにシンボル GC で Rails が速くなるとか話聞くけど、いったいどういうことなの?」という感じでサッパリ理解できてなかったのですが、その辺りの疑問に対してまとめられている記事がありました。 Symbol GC in Ruby 2.2 とても分かりやすく素晴らしい記事だと感じたので、許可をもらって以下に日語訳を公開します。 Symbol GC in Ruby 2.2 シンボル GC ってなに?それって気にしなくちゃいけないことなの? リリースされたばかりの Ruby 2.2 の大きな新機能として「インクリメンタル GC」が挙げられますが、もう1つの注目すべき新機能が、この「シンボル GC」 です。 もしあなたがこれまで Ruby の世界で過ごしてきたのな

    (翻訳) Ruby 2.2 のシンボル GC - FIVETEESIXONE
  • Rubyのシグナルハンドラ - tmtms のメモ

    toRuby & guRuby 出張版 でシグナルについてやってたので、関連して書いてみます。 どのような時にシグナルハンドラを定義するのか どのような時にシグナルハンドラを定義するのかという話がありました。 UNIXのデーモンプログラムは、何が由来なのかわかりませんが、SIGHUP で設定ファイルの再読み込みを行うのが慣習になっています。 SIGHUP はデフォルト動作ではプログラムを終了させてしまうだけなので、SIGHUP で特別な処理を行いたいプログラムはシグナルハンドラを定義しています。 来 SIGHUP は端末が終了した時に端末上で動いていたプログラムに対してOSが発行するためのものです。 たとえば、端末エミュレータを開いて、 % sleep 9999 と実行してる状態で端末エミュレータを閉じると sleep プロセスに SIGHUP が送られます。別の端末から strace

    Rubyのシグナルハンドラ - tmtms のメモ
  • Ruby の HTTP クライアントライブラリ Faraday が便利そう

    Ruby の HTTP クライアントライブラリ Faraday が便利そう Ruby の HTTP クライアントライブラリ Faraday が便利そう API ラッパの開発には RestClient gem だとか OAuth の必要なものは Net/HTTP + OAuth gem を使ってた Twitter gem や Instagram gem など API ライブラリのソースを読んでみると Faraday gem というものがよく使われてた なんとなく気になったので Faraday について調べてみた ついでに Tumblife gem を Faraday を使うようにした 以下そのメモ Faraday って何? Faraday is an HTTP client lib that provides a common interface over many adapters (su

    Ruby の HTTP クライアントライブラリ Faraday が便利そう
  • Fiberによる協調的な並行プログラミング [Ruby] All About

    Fiberによる協調的な並行プログラミングノンプリエンプティブな軽量スレッドであるFiberを紹介し、その基的な使い方、およびFiber#transferを用いた制限のないコンテキスト切り替えを解説します。 Fiberとは 今回の記事では、Fiberについて解説します。Fiberは Rubyにおける並行処理とスレッド・プロセスの機能 で解説した"Thread"に似ていますが、Threadにはない特徴を備えています。 RubyリファレンスマニュアルからFiberクラスの説明を引用してみましょう。 ノンプリエンプティブな軽量スレッド(以下ファイバーと呼ぶ)を提供します。 他の言語では coroutine あるいは semicoroutine と呼ばれることもあります。 Thread と違いユーザレベルスレッドとして実装されています。 class Fiber | Ruby 2.1.0 リファレ

    Fiberによる協調的な並行プログラミング [Ruby] All About
  • Rubyの軽量スレッドFiberを利用する -- ぺけみさお

    パーフェクトRubyを読んでいて目に止まったので、Ruby 1.9から導入すあれた軽量スレッドFiberを使ってみよう。 ThreadとFiberの最大の違いは、コンテキストの切り替えをプログラマが明示的に指定することだ。 Fiberを使えば、結果全体を作るのに大きなコストのかかる処理を段階的に実行させて、部分的な結果を随時取り出すような実装が可能になる。 FiberはFiber.newで生成し、ブロックでFiberで実行する処理内容を記述する。Fiberの実行はFiber#resumeの呼び出しで行う。処理はFiber.yieldでいったん停止して、呼び出し元に戻る。停止したFiberの再実行は、同じくFiber#resumeで行う。実行できる処理がなくなった状態でFiber#resumeを呼び出すと、FiberErrorが発生する。 fiber = Fiber.new do puts

  • RubyでYコンビネーターとZコンビネーター - Qiita

    あいさつ 計算機による一階述語論理の決定不能の取り扱い方を調べる中で コンビネーター理論の理解が深まったので筆を取る事にした. このたぐいのテクを用いると、識別子に依らない関数の再帰を定義出来る(!!) # Zコンビネーター Z = ->(f) { ->(x){ f.( ->(y) {x.(x).(y)} ) }.( ->(x){ f.( ->(y) {x.(x).(y)} ) } ) } # 識別子に依らずに階乗を定義! Z.(->(_){ ->(n){ n == 0 ? 1 : n * _.(n-1) } }).(5) # => 120 以下説明 自分の理解度の確認のためにも用語を1つ1つ丁寧に積み重ねて分かりやすくしたつもり. λ式とは λ式なんていかがわしい言葉を使っているがメチャ簡単な事、でも実は難しい. 皆さんおなじみ2次関数

    RubyでYコンビネーターとZコンビネーター - Qiita
  • Ruby on Rails チュートリアル:実例を使ってRailsを学ぼう - Michael Hartl (マイケル・ハートル)

    Ruby on Rails チュートリアル プロダクト開発の0→1を学ぼう Railsチュートリアルとは?

    Ruby on Rails チュートリアル:実例を使ってRailsを学ぼう - Michael Hartl (マイケル・ハートル)
  • Crevo 開発チームの勉強会で gem の探し方についてお話しました - tricknotesのぼうけんのしょ

    ここ 1年半くらい Crevo の開発チームにお世話になっているのですが、先月から週イチで勉強会をすることになりました。 ここでは持ち回りで何かしらの発表をすることになっていて、今日はぼくが当番の日でした。 ということで、自分が gem を探す時のやりかたをお話させてもらいました。 gem の探し方 from Ryunosuke SATO こう、しれっと自分のプロダクト紹介するのはじわじわきて楽しいですね。

    Crevo 開発チームの勉強会で gem の探し方についてお話しました - tricknotesのぼうけんのしょ
  • 日本語訳: Ruby 2.1: Out-of-Band GC — sawanoboly.net

    @azukiwasher さんからRuby2.1のGCについて解説されている記事の日語訳を頂きました。 『WEB+DBRuby 2.1 特集を読んでたら、ガベージコレクション(RGenGC)の説明で参照されてた記事の次の記事がためになったので訳してみた。』 Vol.79ですね。 ソース Ruby 2.1: Out-of-Band GC · computer talk by @tmm1 Ruby 2.1: Out-of-Band GC Ruby 2.1 で GC は以前よりずっとマシになったが、相変わらず "Stop The World" な実装に変わりはない。リクエスト処理中にコレクションが始まると、リクエストへの応答時間に遅延が生じる。遅延を緩和する方法のひとつにリクエストとリクエストの間に GC を走らせる、いわゆる「Out-of-Band」がある。 OOBGC はよく知られた

  • Ruby Create Recursive Directory Tree

  • Rubyの末尾再帰最適化を理解する

    RubyではSchemeなどとは異なって、末尾再帰の最適化を勝手にしてはくれません。 再帰は再帰なんかじゃない!末尾再帰こそが真の再帰なんだ! でもid:athosさんが、Rubyで末尾再帰最適化を実現するコードを書いてくれました。 http://d.hatena.ne.jp/athos/20110119/p1 自分の実力だと一見しただけでは何をしているか理解できなかったので、少し自分用にコードを整理してその処理を追ってみます。 class Module def tco(meth) called = false tmp = nil orig_meth = "orig_#{meth}" alias_method orig_meth, meth private orig_meth define_method(meth) do |*args| unless called called = tru

  • SupportBee API Documentation

    [SupportBee's](https://supportbee.com) support ticket system enables teams to organize, prioritize and collaborate on customer support emails. # Introduction This page documents SupportBee's REST(like) API and how to access SupportBee's functionality programatically. # Authentication - All API requests must have a Content-Type header set to application/json - All API requests must have a Accept he

  • Rubyのテスティングフレームワークの歴史(2014年版) - 2014-11-06 - ククログ

    2014年12月にRuby 2.2がリリースされる予定です1。 Ruby 2.2にはRuby 1.9.1のときに外されたtest-unitというテスティングフレームワークが再びバンドルされる予定です。Rubyのテスティングフレームワーク周りに詳しくない人にはよくわからない状況でしょう。そこで、Rubyのテスティングフレームワークの歴史を説明することで状況を整理します。 名称の整理 この説明の中ではたくさんのテスティングフレームワークが登場します。似たようなものもあるため、最初にテスティングフレームワークの名称を整理します。この説明の中で登場する名称は次の通りです。 RubyUnit Lapidary rubyunit Test::Unit test/unit test-unit miniunit minitest RSpec 違いがわかりますか?ざっくり説明すると次の通りです。 RubyU

    Rubyのテスティングフレームワークの歴史(2014年版) - 2014-11-06 - ククログ
  • アプリサーバー対決 パート1:主なRubyアプリケーションサーバーの機能比較 - Engine Yard Blog

    記事は英語版ブログで公開された記事の翻訳版です。 2013年7月に、米国テキサス州オースティンで開催されたLonestar Ruby Conferenceで、Rubyによるアプリケーションサーバーについてお話させていただきました。その中でいくつかのRubyアプリケーションサーバーのパフォーマンスや、さまざまな状況における挙動の違いを比較しました。この記事では、講演準備として行ったリサーチの中で分かったことをかいつまんでご紹介します。 実際のカンファレンスの録画をご覧になりたい方は、Confreaksで公開されていますのでそちらをご参照ください。テストに使用した簡単な自作アプリケーションはGitHubに、講演スライドはSlideshareにそれぞれ公開しています。 このリサーチは、Passenger 4のパフォーマンス評価以外すべて2013年7月に行ったものなので、情報が多少古くなっている

    アプリサーバー対決 パート1:主なRubyアプリケーションサーバーの機能比較 - Engine Yard Blog
  • 使えるRSpec入門・その1「RSpecの基本的な構文や便利な機能を理解する」 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに RSpecは難しい、よくわからない、といったコメントをときどき見かけます。 確かにちょっと独特な構文を持っていますし、機能も結構多いので「難しそう」と感じてしまう気持ちもわかります。 (構文については僕も最初見たときに「うげっ、なんか気持ちわるっ」と思った記憶がありますw) しかし、RSpecに限らずどんなフレームワークでも同じですが、慣れてしまえばスラスラ書けますし、実際僕自身は「RSpecって便利だな-」と思いながらテストコードを書いています。 そこでこの記事では、僕が考える「最低限ここだけを押さえていれば大丈夫!!」なR

    使えるRSpec入門・その1「RSpecの基本的な構文や便利な機能を理解する」 - Qiita
  • RubyでLinuxコマンドの再実装(ls編) - Qiita

    Rubyの勉強にRubyで有名ドコロのLinuxコマンドたちを再実装してみたいとおもいます。 少しずつ追記する形にできればと思っています。よりよい実装方法などありましたらぜひご教授いただけると幸いです。 RubyLinuxコマンドの再実装(ls編) - Qiita RubyLinuxコマンドの再実装(tree編) - Qiita #! /usr/bin/env ruby # # ls: 引数なしの場合現在のディレクトリの状態を返す。 # 引数ありの場合そのディレクトリの状態を返す。 target = ARGV[0] || Dir.pwd entries = Dir::entries(target) entries.select!{|entry| entry[0] != '.'} entries.map! do |entry| if File::directory?(File.join(

    RubyでLinuxコマンドの再実装(ls編) - Qiita
  • Ruby2.2 ではアレが死ぬほど使いやすくなるの! - Qiita

    そうです、Matrix(行列)クラスに色々入る予定のようです. .... いやもっと伝えるべきモノが他にあるとの怒号が今にも聞こえて来そうですが... 「すみません今日の所は行列の紹介をさせて下さい.」 多くの方は興味もないであろうけど、 Rubyには行列やベクトルを扱う Matrix クラスというものがありまして、 Ruby2.2では色々新機能やバグfixが入るようです. 「行列ベクトル演算するならRubyよね」 と言われるくらいのモノにはなるのではないでしょうか? 日はRuby2.2以前にあるものも含めMatrixのマジですごい所を紹介します. 使わないともったいない!すごいMatrix, 楽しく学ぼう! 1. LU分解 LU分解が出来るという事は... n元連立方程式をいとも簡単に解く事が出来ちゃうの # 2x + y = 2 # x + 2y = 3 Matrix[ [2, 1]

    Ruby2.2 ではアレが死ぬほど使いやすくなるの! - Qiita
  • RubyistのためのClojure入門 - Qiita

    PuppetがRubyからClojureへ乗り換えていくようです。 そんなRubyistが他にもいるかもしれないので、Rubyist向けにClojureだとどう書くか、みたいなガイドを書いてみます。 イディオム jnchitoさんのRubyイディオム記事をClojureで書くとどうなるか、まず説明したいと思います。 後置if で行数を減らす

    RubyistのためのClojure入門 - Qiita
    hiroyukim
    hiroyukim 2014/10/01
    “PuppetがRubyからClojureへ乗り換えていくようです。 ”
  • Writing Fast Rubyというスライドが良い | mah365

    ちょっとしたコードの書き方でパフォーマンスが変わることがあります。リーダビリティを重視する向きからすれば小手先のテクニックに映るかも知れないのですが、リーダビリティを維持しながらちゃんとしたパフォーマンスを出すためにも、テクニックを知ることは大事なことだと思うのです。 結構違うもんですなー というわけで、そんなテクニックをまとめたスライドがWriting Fast Ruby。見ていて参考になったのでメモ。 たとえば引数に&blockをとってcallするよりも、yieldの方が5倍速い、とか、 def slow(&block) block.call end def fast yield end mapにブロックを渡すよりも、シンボルを渡す方が20%速い、とか (1..100).map {|i| i.to_s} (1..100).map(&:to_s) mapしてからflattenを呼び出すよ

    Writing Fast Rubyというスライドが良い | mah365