主催の平野さんから登壇依頼のメールをもらって、二つ返事で回答させてもらったのがはじまり。オファーをもらったときに「育成をテーマに」と言われていたので、主題に悩むことなくストーリーづくりを進めることができた。 rails-developers-meetup.connpass.com 当日のスライドは以下。ここ数年行なっている育成についてまとめるいい機会になったと思う。熱が入りすぎて作り込み過ぎてしまい30分枠のところ40分くらい話させてもらって恐縮でした (るりまへのパッチの話など諸々を結構割愛したけれど、それでも溢れてしまった) 。 Stairway to The Pragmatic Rails Programmer from Koichi ITO www.slideshare.net 余談だけど、英語タイトル『Stairway to The Pragmatic Rails Program
元記事: Awesome Ruby Ruby 以外の言語, ソフトウェアについては を参照してください. Awesome List in Qiita Awesome Java Awesome JavaScript Awesome Node.js Awesome Python Awesome Go Awesome Selenium Awesome Appium 抽象化 ActiveInteraction - アプリケーション固有のビジネスロジックを管理します. Cells - Rails のコンポーネントを表示します. Decent Exposure - コントローラに宣言的インタフェースを提供するヘルパー. dry-rb - 共通のタスクをカプセル化するための, 次世代 Ruby ライブラリコレクションです. Interactor - 1回のリクエストで複雑なインタラクションを実行するため
おしらせ 以下に最新版があります。 qiita.com 序 WindowsでRubyを使うのは難しいようで簡単なようで難しいことです。 ただインストールするだけならばインストーラがあるので簡単です。公式サイトのダウンロードページから探しましょう。 ……ここでいきなり迷うであろうのが、"mswin"と"mingw"という語です。Unix系のOSではABIは通常一環境に一つです。しかし、Windowsではたくさんあります。64bit版Windowsでは32bitのバイナリも動かすことが出来るのと、最近までVisual Studioはバージョンアップの度にABIを変更していたため、2017年現在では以下のようなABIが存在します。 i386-mswin32 i386-mswin32_70 i386-mswin32_71 i386-mswin32_80 i386-mswin32_90 i386-m
Gemnasium が Rubygems Monthly というレポートを毎月出してくれるようになりました。 Gemnasium 自体はとても便利で、利用している Rubygems の更新を通知してくれるやつです。このMontylyは自分が使っていない主要なGemについても教えてくれるので、これはなかなか良さそうです。 ざっと 見て見ました。詳細リンクなどがあるので、できれば原文を見てください。 Sinatra2 Sinatra2 が出たんですね。 sinatra/mustermann: your personal string matching expert というrouterを使っているようです。 Bundler 1.15.x 色々機能追加されているようでしたので、合わせて以下のchangelogも見て見ました。 bundler 1.15.0.pre.1 - Gemnasium Fea
RubyでScrapeする時はmechanizeを使って書いているのですが、ふと毎回入れていた sleep 処理を hook で対応できないかと調べてみたところ、以下の記事を見つけました。 Regulating / rate limiting ruby mechanize - Stack Overflow なるほど、 history_added 若干名前から想像つきにくいpropertyが存在するようです。 ソース眺めてみた ググると他にもありそうなのでソースを眺めてみたところ、 gems/mechanize-2.7.5/lib/mechanize.rb にhook処理はまとめられていました。 content_encoding_hooks # A list of hooks to call before reading response header 'content-encoding'.
例外処理書く時あるよね クローラを書いていると、「Webページから情報を取得する」動作を書くわけだが、ここは相手サーバの都合で様々なエラーを吐く。こんなときしばしば「n回トライしてだめだったら次いくよ」という例外処理を書く。 url_array.each do |url| counter = 0 upto = 5 begin html = open(url, &:read) # サーバ側の問題で、例外を吐く可能性がある部分 rescue counter += 1 retry if counter < upto next end # nokogiri = Nokogiri::HTML(html) # ... end require "retryable" # 例1) 最も単純な例 # ブロック引数はそれぞれ retries: 現在再試行回数(0〜n-1), # exception: 例外オブ
rubygemのダウンロード件数を表示するツール。 rochefort/gem-search: search gems with using rubygems.org API Rubygems APIの仕様のため、部分一致検索しかできなくて不便だなと以前から思っていたので 完全一致で検索できるように修正しました。(gem search は正規表現で検索可能) -e オプションでできるようにしています。 $ gem-search -e rails Searching . NAME DL(ver) DL(all) HOMEPAGE -------------------------------------------------- -------- --------- ------------------------------------------------------------ ra
自戒です tl;dr 発端 間違った対処法 だがしかし sonots先生曰く 検証結果 所感 Rubyのバージョンによる分岐を全部Gemfileに寄せた結果 謝辞 tl;dr gemspecの中でRubyのバージョンによってインストールしたいgemのバージョンを変えたい時は、gemspecではなくGemfileでif文書くのがおそらく正解 発端 先月くらいのFacebook内のちょっとした会話がきっかけでした *1 activesupportやactiverecord 5系以降ではRuby 2.2.2以降必須になった https://github.com/rails/rails/blob/v5.0.0/activesupport/activesupport.gemspec#L10 自分のgemがactivesupport (activerecord)に依存していた場合、そのままだとRuby
RSpecからの移行時に少しはまりました。 class Rake::TestTask (Ruby 2.4.0) を見ながら Rake taskを書いてみたのですが、RSpecの--fomat documentのようにtestの名称(メソッド名)も実行時に表示させる方法について誤解があり、少し悶々とした時間を過ごしてしまいました。 最終的にはこうした require "rake/testtask" task default: :test desc "Run tests" ENV["TESTOPTS"] = "-v" unless ENV["TESTOPTS"] Rake::TestTask.new do |t| t.libs << "test" t.test_files = Dir["test/**/test_*.rb"] t.verbose = true end 環境変数のTESTOPTS
test-unitはRuby用のxUnit系の単体テストフレームワークです。2.3.1からデータ駆動テスト機能が追加されていたのですが、2.5.3まではリファレンスに記述がなく、知る人ぞ知る機能でした。 2013-01-23にリリースされた2.5.4ではデータ駆動テスト機能についてのドキュメントが追加されています。 データ駆動テスト自体の説明はUxUを用いたデータ駆動テストの記述を参照してください。 Cucumberのscenario outlinesに似ていると言えばピンと来る人もいるのではないでしょうか。 Cucumberのscenario outlinesも前述のククログ記事の通り、テストのデータとロジックを分離しているのでデータ駆動テストの一種と言えます。 今回は、データ駆動テストを導入した例を見ながらtest-unitでのデータ駆動テスト機能の使い方を紹介します。なお、以降の説明
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
配列から連続したN個を取り出し、合計数の最大値を算出する問題。 最初のinjectの引数を無しで書いてしまったため、10分ほど悩んでしまいました。 injectあるあるについて補足。 CHALLENGE DESCRIPTION: Bob is developing a new strategy to get rich in the stock market. He wishes to invest his portfolio for 1 or more days, then sell it at the right time to maximize his earnings. Bob has painstakingly tracked how much his portfolio would have gained or lost for each of the last N days.
行列回転の問題。今回は面白かったです。 CHALLENGE DESCRIPTION: You are given a 2D N×N matrix. Each element of the matrix is a letter: from ‘a’ to ‘z’. Your task is to rotate the matrix 90° clockwise: a b c g d a d e f => h e b g h i i f c INPUT SAMPLE: a b c d a b c d e f g h i j k l m n o p a b c d e f g h i OUTPUT SAMPLE: c a d b m i e a n j f b o k g c p l h d g d a h e b i f c CONSTRAINTS: The N size of the matri
JSONデータ圧縮方式をzstdに切り替えデータ量を38.3%削減した事例、及びマイクロサービスの無停止アップデート事例について紹介したいと思います。 はじめに JPRゲーム事業本部開発基盤部の池田周平です。先日 Rails5対応についてDeNA techブログに投稿 した@namusyakaと同じチームで働いています。 JSON文字列をRDBに格納する際の圧縮フォーマットをSnappyからzstdに切り替え、データ量を削減した事例を紹介したいと思います。本対応を実施した目的はDB負荷対策です。DBで扱うデータをより小さくすることで、DBサーバのDiskI/O負荷とMaster-Slave間のレプリケーション遅延対策を目的としています。 「Sakasho」は、DeNAが持つモバイルゲームのためのプラットフォームです。複数タイトルのゲームを取り扱っており、一部データはゲーム毎の仕様差を吸収し
簡単なアルゴリズムの話かと思い、さらっと流そうかと思ったら、配列、連結リスト、ハッシュテーブルをRubyで実装し、B木/B+木にも言及した良記事でしたので、手を動かしなら、B+木の絵も手元で沢山書いて理解しながら熟読してしまいました。 計算量の違いの説明もあり図も充実しており、とてもよかったです。若い頃の自分に読ませてあげたい良特集です。 WEB+DB PRESS Vol.91 作者: 丸山晋平,清水雅人,舘野祐一,小野将之,佐藤歩,泉水翔吾,伊藤直也,佐藤太一,海野弘成,福本貴之,うさみけんた,西尾泰和,中島聡,はまちや2,竹原,WEB+DB PRESS編集部出版社/メーカー: 技術評論社発売日: 2016/02/24メディア: 大型本この商品を含むブログを見る 配列 配列と連結リストのアーキテクチャ、計算量の違いを unshift, push, each を実装することで理解できます。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く