タグ

Rubyに関するmapserver2007のブックマーク (119)

  • サマータイム終了時の挙動

    dst.md タイムゾーン America/Los_Angeles では、サマータイム終了日 2018/11/04 の 01:00:00 〜 01:59:59 が2度繰り返される。 Ruby の Time は、午前1時台をサマータイム終了後として扱っている。 irb(main):001:0> ENV['TZ'] = 'America/Los_Angeles' => "America/Los_Angeles" irb(main):002:0> Time.local(2018, 11, 4, 0, 59, 0) => 2018-11-04 00:59:00 -0700 irb(main):003:0> Time.local(2018, 11, 4, 0, 59, 0).dst? => true irb(main):004:0> Time.local(2018, 11, 4, 1, 0, 0)

    サマータイム終了時の挙動
  • GitHub - markets/awesome-ruby: 💎 A collection of awesome Ruby libraries, tools, frameworks and software

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - markets/awesome-ruby: 💎 A collection of awesome Ruby libraries, tools, frameworks and software
  • Ruby 3 JITの最新情報: 現状と今後(翻訳)|TechRacho by BPS株式会社

    JITでどれだけ速くなるか この世には「嘘」、「ひどい嘘」、そして「ベンチマーク」があります(訳注: 元ネタ)。JITによる高速化を正確な値で表すなど無理な相談です。正確な値など存在しないからです。しかし、特定のプログラムについては、完全に合理的な負荷をかけた状態で50%、150%、あるいは250%までJITで高速化できるケースが多々あります。現実的な負荷の元で、500%以上もの高速化を達成するケースすらいくつかあります。ただし、JITよりインタプリタの方が速いケースも若干あることは言うまでもありません。なぜなら、現実世界には常に最適化されているものなど存在しないからです。 現時点での無難かつシンプルなCRuby向けJIT実装では、およそ30%〜50%のパフォーマンス向上が見られ、測定方法次第では最大150%に達することもあります。30%〜50%はJITにしてはかなり控えめな値ですが、これ

    Ruby 3 JITの最新情報: 現状と今後(翻訳)|TechRacho by BPS株式会社
  • Rubyの内部文字コードはUTF-8ではない...だと...?!|TechRacho by BPS株式会社

    こんにちは、hachi8833です。 少し前に、babaさんから「Rubyの内部文字コードはUTF-8じゃないよ」とツッコミがありました。 (追記: 上は会話の途中から切り取りましたのでご了承ください) いきなりの展開にくらくらきましたが、babaさんはさらにたたみかけます。 こうしたことはとっくにご存じの方も多いと思いますが、「Rubyといえば2.0以来UTF-8完全対応なんじゃないの」と勝手に思い込んでた私は脳に掌底をらったような思いです。ああ、でもこういうことがあるから面白い。 ⚓ プログラミング言語と内部文字コードの関係 まず最初に押さえておきたい点です。プログラミング言語で文字コードに関連する部分は、「文字列」「正規表現」「入出力」「コード中の文字リテラル(""の中など)」「コード中の文字リテラル以外の要素(変数名など)」「ファイル名」などが中心になります。そして文字列に関連し

    Rubyの内部文字コードはUTF-8ではない...だと...?!|TechRacho by BPS株式会社
  • いまさら聞けないfactory_girl入門 - Grooves開発ブログ

    thoughtbot/factory_girlを活用して日々テストを書いているRailsエンジニアの方々、こんにちは、正徳です。 Forkwellでもfactory_girlを使ってテストを書いています。 このfactory_girlには便利機能が多く、とても使いやすいのですが、女心並みに複雑*1なので、一通りの機能をブログにまとめてみました。 factory_girl初心者から、中級者の参考になれば幸いです。 参考にしたページ このブログの内容は全てfactory_girlのGETTING_STARTEDに記載されています。 読まれた事のない方は、是非一読する事をおすすめします。 目次 factory_girlのインストールと設定 factory_girlの使い方(Using factories) build create attributes_for build_stubbed 遅延評

    いまさら聞けないfactory_girl入門 - Grooves開発ブログ
  • rspecを高速化するsporkとその仕組み - ITエンジニアとして生きる

    最近rspecでRailsのテストコードを書いてました。 書いたテストコードは動かしながら確認していくわけですが、その1回1回の実行時間がとても長くて困ってました。(私の環境では1回の実行で大体10秒くらいかかってました。) 「なんでこんな時間かかるんやろう?」と思って調べてみたところ、どうやらrspec実行の度にRails環境をロードするため時間がかかっていたようです。 rspec実行の度にRailsをロードしていたのでは時間がかかって当然ですね。 何か良い方法ないのかな?と思っていたら「spork」なるものを発見したので導入してみました。 sporkの導入GitHub - sporkrb/spork: A DRb server for testing frameworks (RSpec / Cucumber currently) that forks before each run t

    rspecを高速化するsporkとその仕組み - ITエンジニアとして生きる
  • Rubyが今のPythonの地位にいない理由

    _ Rubyが今のPythonの地位にいない理由 歴史のことなんぞなんも知らんけど、「技術的には今のPythonの地位はRubyでもよかったのに、そうならなかった」のが何故か、その理由を書いてみよう。僕はRuby歴史なんて知らないし、以下の文章は全部、まるで見てきたかのように書いてますが、適当に書いたくせに何故か断言口調になっている怪文書の類いです。 https://twitter.com/mametter/status/741950239662170112 まめさんの書いた理由リストはどれも関係ない。いやカスってるけど。難しいというのも関係ない。 僕がRubyを知ったころ…最初に書いた通りRuby歴史なんて知らないので、別に早くもないわけだけど…Rubyというのは全く使われていない言語だった。どっかの好き者がPerlの替わりに単純な処理に使って、「ウフ、美しくかけた、グフッ」とかつぶ

  • Ruby のココがダメ - Qiita

    タイトルは釣りです。Ruby に盲目的に惚れている迂生には Ruby の痘痕(あばた)はエクボです。 それはともかく。 メソッド名の別名がありすぎ 「あなたは map 派? それとも collect 派?」っていう問いがまず嫌い。 いや,別名にも意義があるとは思うんだけど,記憶の負担が大きい。 自分では map しか使わなくても,他人のコード読むんだったら collect を知っていなくちゃならない。 しばらく前に reduce っていうメソッド見て,そんなのあったっけ?と思ったら inject の別名だった。 map/collect と inject/reduce の名前とその背景にある発想については,Rubyist Magazine に良い記事がある: そうかと思えば,Array#delete_if と Array#reject! みたいに,働きは基的に同じだけど,削除が行われなかっ

    Ruby のココがダメ - Qiita
  • [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 の特大の非互換について - まめめも
  • PHPとしても実行できるRubyの書きかた - Qiita

    p <<PHP_VERSION <?php PHP_VERSION ;print "\033[1F\033[1M"; //.tap{ define_method :range, -> s,e { s.upto e } } //.tap{ define_method :array_map, -> f,seq { seq.map{ |x| f.(x) } } } //.tap{ define_method :function, -> x,&b { -> x { $x=x;b.call } } } array_map(function($x){ print $x % 15 == 0 ? 'FizzBuzz' : ($x % 3 == 0 ? 'Fizz' : ($x % 5 == 0 ? 'Buzz' : $x)); print "\n"; }, range(1,100)); ruby php.

    PHPとしても実行できるRubyの書きかた - Qiita
    mapserver2007
    mapserver2007 2015/01/29
    これは面白い。まあやらんけど。
  • Rubyのスレッド周りの話 - Qiita

    Rubyのスレッド周りを追ってみた。 最も効率が良いスレッドモデルは結論出ないんじゃないかと(物理的な環境、何を実装するか、性能以外の面でメンテナの問題とか)。 Ruby1.8系 「グリーンスレッド」 Ruby1.8ではOSではなくて仮想マシン(VM)上で実装されたマルチスレッドシステムを採用した。 これを「グリーンスレッド」という。カーネルでスレッドがサポートされていなくても動作する。 つまり、OSに依存せずにマルチスレッドを実現する。 メリット スレッドの起動、並列化の性能 Linux のネイティブスレッドの性能を上回る。つまり、ネイティブスレッドより低コストで起動、並列化を行える。 起動については、独自のアドレス空間を確保する必要がなく、わずかな量の仮想メモリを取得するだけ。 並列化については、カーネルレベルとユーザレベルの切り替えが必要ないことなど。 さまざまなOS間で移植が楽 デ

    Rubyのスレッド周りの話 - Qiita
  • ブロックをdo…endで書くか{…}で書くかにより挙動が変わる例 - Qiita

    Ruby - Nokogiriによるスクレイピング(YahooFinance) - Qiita のコメント欄を書いているときに、挙動の違いに改めて気付いたので挙げときます。 Enumerable#injectに限られる話ではないのですが、気付いたときに使っていたのがこのメソッドだったので。 先に結論を do…endで書くときには、返値確認用のpを直接使うな。 Enumerable#inject まず中括弧の場合。injectの例としてこちらから引用します。 ruby の inject をわかりやすく説明してみる - Λάδι Βιώσας

    ブロックをdo…endで書くか{…}で書くかにより挙動が変わる例 - Qiita
  • Rubyのモジュールメソッドの作り方 - Qiita

    モジュールクラスのオブジェクトの特異メソッド。 モジュールメソッドと呼んで良いのか迷いますが、ここでは、モジュールメソッドと呼んでおきます。 日語での説明は苦手なので、最初に、何がしたいのかを例として書いておきます。 また長い記事なので、結果だけを知りたい方は、下の方のまとめをご覧ください。 はじめに例 module Hoge def self.hoge puts "hoge" end end Hoge.hoge #=> hoge class Foo include Hoge extend Hoge end Foo.new.hoge #=> undefined method `hoge' for #<Foo:0x0000010105cf60> (NoMethodError) Foo.hoge #=> undefined method `hoge' for Foo:Class (NoMet

    Rubyのモジュールメソッドの作り方 - Qiita
    mapserver2007
    mapserver2007 2014/04/14
    “module Bar def self.included(klass) klass.extend ClassMethods end module ClassMethods def bar puts "bar" end end end class Foo include Bar end”
  • Rubyの並列処理とグローバルインタプリタロックの関係 | SONICMOOV LAB

    hottyです。 ソニックムーブ Advent Calendar 2013 12/11(水)の記事になります。 今回はRubyの並列処理について書こうと思います。 この記事には過ちがあると指摘されました(さぁどこでしょうか)。詳しくは追記を! Rubyの処理系は1.8まではユーザレベルで行うグリーンスレッドでしたが、 1.9からはMRIにYARVという処理系が組み込まれ、 カーネルがスレッドの管理を行うネイティブスレッドになりました。 では、早速ですがThreadクラスで複数のスレッドを作って並列処理を行ってみましょう。 [sourcecode lang="ruby"] list = ["A", "B", "C", "D"] io = File.open("result.log", "w") list.each do |name| thread = Thread.fork(name) do

    Rubyの並列処理とグローバルインタプリタロックの関係 | SONICMOOV LAB
  • Ruby の Monitor と ConditionVariable の使い方 - Mame the hack

    Ruby の Monitor と ConditionVariable の使い方 なかなかぐぐっても日語の資料が見つからなかったので自分で動かしてみた。(ぐぐる能力低い) まずThreadの直列化 require "thread" require "monitor" moni = Monitor.new val = 0 Thread.new { 3.times { puts "thread1 start: #{val}" val+=1 sleep 0.1 puts "thread1 end: #{val}" } } Thread.new { 3.times { puts "thread2 start: #{val}" val+=1 sleep 0.1 puts "thread2 end: #{val}" } } sleep 結果は以下の通り。 start > end, start > en

    Ruby の Monitor と ConditionVariable の使い方 - Mame the hack
  • JavaやC#の常識が通用しないRubyのprivateメソッド - give IT a try

    衝撃を受けたできごと 最近Rubyを勉強しています。 JavaやC#でオブジェクト指向プログラミングの基はマスターしてるから、Rubyもそのあたりは楽勝〜!・・・と思っていたら、JavaやC#の常識が全く通用しない振る舞いに遭遇してかなり衝撃を受けました。それは、 privateメソッドはサブクラスからも呼び出せる ・・・ということです!!がーん。 たとえば、JavaやC#だと自分のクラス内でprivateメソッドが使われていない場合、不要なメソッドとして削除できます。(リフレクションを使って呼び出される可能性はここでは無視ね) しかし、Rubyでは誰かがサブクラスを作って呼び出している可能性があるので、privateメソッドを削除する場合は注意が必要です。メソッド名を変更する場合も同様ですね。 また、知らずに親クラスと同名のprivateメソッドを定義すると、予期せず親クラスの実装をオ

  • Eclipse Vert.x

    import io.vertx.core.AbstractVerticle; public class Server extends AbstractVerticle { public void start() { vertx.createHttpServer().requestHandler(req -> { req.response() .putHeader("content-type", "text/plain") .end("Hello from Vert.x!"); }).listen(8080); } } import io.vertx.core.AbstractVerticle class Server : AbstractVerticle() { override fun start() { vertx.createHttpServer().requestHandler {

  • Ruby中級入門

    Ruby中級入門 1. Ruby中級入門 @shokai 2013年8月5日(火) @masuilab 2. 私 •@shokai (しょうかい) •趣味料理、glitch 3. ある程度大きなアプリケーションを作 っていると、部品に分割したくなると 思います。アプリ内ライブラリやgem の作り方を説明します。Rubyの機能を 活用した使い勝手の良いライブラリの デザインについて考えます。 4. • アプリ内ライブラリの作り方・gemの作り方 • サンプルコードとテスト • ライブラリのデザイン • API • DSL • 泥臭い小手先の技 • 例外・エラーの通知 • ドキュメント コンテンツ 5. ライブラリを作る 例:LeapMotionを自作アプリに組み込むための アプリ内ライブラリを作る 6. • LeapMotionはport 6437にWebSocket 接続するとJSONで

    Ruby中級入門
  • irbから学ぶRubyの並列処理 ~ forkからWebSocketまで

    (追記:2012-12-13) 記事を電子書籍化しました。「Gumroad」を通して100円にて販売しています。内容についての追加・変更はありませんが、文体の変更、誤記の修正およびメディア向けの調整を行っています。 電子書籍「irbから学ぶRubyの並列処理 ~ forkからWebSocketまで」EPUB版 このリンクはGumroadにおける商品購入リンクになっています。クリックすると、オーバーレイ・ウインドウが立ち上がって、この場でクレジットカード決済による購入が可能です。購入にはクレジット情報およびメールアドレスの入力が必要になります。購入すると、入力したメールアドレスにコンテンツのDLリンクが送られてきます。 購入ご検討のほどよろしくお願いしますm(__)m 関連記事: 電子書籍「irbから学ぶRubyの並列処理 ~ forkからWebSocketまで」EPUB版をGumroad

  • layer8.sh

    This domain may be for sale!