[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

rubyに関するkssmのブックマーク (83)

  • Parallelで簡単にRubyで並列処理 | メモ帳代わりのブログ

    まえがき Rubyで簡単に並列処理ができるパッケージ『Parallel』を使って遊んでみたのでメモ。 今回単純なプログラムだけど処理速度がかなり上がったので感動です。 開発環境 Ruby 1.9.3 gem 1.8.23 Parallel 0.8.4 Parallelのインストール gemでインストールします sudo gem install parallel # 確認 gem list parallel Parallelの基的な書き方 こんな感じ require 'parallel' # :in_threds => スレッド数 Parallel.each(lists, in_threds: 2) do |list| # 処理 end んーとても簡単 サンプル 今回のサンプルは以前にNokogiriでお寿司のメニューを取得してきたコードに少し変更を加えて、メニューの画像ファイルをダウンロ

    kssm
    kssm 2014/11/27
  • Ruby/ProgressBar: A Text Progress Bar Library for Ruby

    Ruby/ProgressBar is a text progress bar library for Ruby. It can indicate progress with percentage, a progress bar, and estimated remaining time. The latest version of Ruby/ProgressBar is available at <URL:/ruby-progressbar/> . Examples % irb --simple-prompt -r progressbar >> pbar = ProgressBar.new("test", 100) => (ProgressBar: 0/100) >> 100.times {sleep(0.1); pbar.inc}; pbar.finish test: 100% |oo

    kssm
    kssm 2013/12/11
  • Rubyの == と equal? と === と eql? のまとめ - Rubyリファレンス日記

    == 数値、文字列、配列などで、「等しいかどうか」「同じ内容かどうか」を調べるのに使います。別のオブジェクト(別のインスタンスへの参照)でも同じ内容ならtrueになります。 Rubyでは数値と文字列の間の自動変換は行われませんので、1 == "1"はfalseです。整数と浮動小数点数の間では自動変換が行われ、1 == 1.0はtrueになります。 自作のクラスのオブジェクトどうしを ==で比較したいときは、==メソッドを定義します。==を定義しないと、equal?と同じく「同じオブジェクトかどうか」になります。 == equal? 常に「同じオブジェクトかどうか」を調べるのに使います。自作のクラスでequal?を定義してはいけません(定義できてしまいますが)。 Javaでは、Stringなどのequalsメソッドは「同じ内容かどうか」を調べるもので、Rubyと逆です。 equal? ===

    Rubyの == と equal? と === と eql? のまとめ - Rubyリファレンス日記
  • CSVを読み込む&新規CSVファイルに書き込む - gom68の日記

    RubyCSVファイルを読み込んで、新規のCSVファイルに書き込む。 FasterCSVというgemを使った方が速いらしいが、あえてスルー。 新規CSVファイルに書き込む CSVファイルを読み込んで、一部を置換したものを新規CSVとして保存する。 File.openはファイルオブジェクトを返すが、CSV.openはブロックを渡すと、各行の配列を返す。 require 'csv' path = ARGV.shift new_csv = File.join(File.dirname(path), 'hoge.csv') rows=[] CSV.open(path, 'r') do |row| row[0].gsub! /hoge/, "hage" rows << row end CSV.generate(new_csv) do |writer| rows.each {|row| writer

    CSVを読み込む&新規CSVファイルに書き込む - gom68の日記
    kssm
    kssm 2013/11/08
  • RubyでWeb上の画像を指定したディレクトリに保存する - Think Big Act Local

    画像URLを指定するとその画像データをローカルに保存するコードです。 保存先のディレクトリは/var/tmp/hoge/に指定して保存します。 開発環境 ruby 1.9.3 ソースコード 与えられたURLの画像を保存する関数は以下のように書けます。 require "open-uri" require "FileUtils" def save_image(url) # ready filepath fileName = File.basename(url) dirName = "/var/tmp/hoge/" filePath = dirName + fileName # create folder if not exist FileUtils.mkdir_p(dirName) unless FileTest.exist?(dirName) # write image adata ope

    RubyでWeb上の画像を指定したディレクトリに保存する - Think Big Act Local
    kssm
    kssm 2013/10/14
  • YOUたち!RubyでinjectしちゃいなYO!

    プログラミングの存在価値は処理の自動化です。任意の集合に対して処理を繰り返しその結果を返す、それがプログラムです。つまり集合に対して処理を繰り返す能力が、プログラムの価値を決定付けるのです1。 「手続き型言語」ではループが処理の繰り返しを実現するための重要な手法の一つです。しかしループは、一時変数を用意してプログラマがループの進行を管理しなければならない、という欠点があります。そしてその管理ミスがバグとなります。 「関数型言語」では再帰が処理の繰り返しを実現するための重要な手法の一つです。再帰では再帰の進行はその構造に基づいて自動的になされるので、プログラマがそれを管理する必要はありません。しかしその一方で、処理が多段階に渡る立体的なものとなるので、その動作の理解が平面的なループ処理に比べて難しいという欠点があります。習得には慣れが必要です。 Rubyは、手続き型言語と関数型言語の両方の側

    kssm
    kssm 2013/08/14
  • Ruby標準添付ライブラリcsvのCSV.tableメソッドが最強な件について

    ─ 問題1 ─ data.csvファイルには、5人のプレイヤー(Alice, Bob, Jimmy, Kent, Ross)が二種類のゲーム(gameA, gameB)をプレイした結果が次のような形で格納されている。各ゲームの平均点を求めよ。 data.csv player,gameA,gameB Alice,84.0,79.5 Bob,20.0,56.5 Jimmy,80.0,31.0 Kent,90.5,15.5 Ross,68.0,33.0 data = File.read('data.csv') headers, *scores = data.lines.map { |line| line.chomp.split(',') } scores # => [["Alice", "84.0", "79.5"], ["Bob", "20.0", "56.5"], ["Jimmy", "80

    kssm
    kssm 2013/08/13
  • ミニツク - Rubyのe-ラーニング研修システム

    × コースの進め方 コース画面の左側には、「コンテンツ一覧」(TOC)が表示されています。 コンテンツ一覧は、当該コースにおけるあなたの学習状況を示してくれます。 「次のコンテンツ」ボタンをクリックすることで、次のコンテンツへと遷移し、それまで学習していたコンテンツは「完了」状態になります。 また、「次のコンテンツ」ボタンをクリックすることで、コースの栞が更新されるので、後日このコースの学習を再開する際に、すぐに前回の続きを再開できます。 TOC内の任意の項目をクリックすることで、自由にコースの学習状況を進めたり戻ったりすることができます。 また、「栞を設定する」リンクをクリックすれば、栞を移動させることもできます。 × コースのドリル 多くのレッスンは、その中に「ドリル」を含んでいます。 ドリルを学習することで、当該レッスンの学習成果を身に付けましょう。 ドリルに含まれる全ての

    kssm
    kssm 2013/06/20
  • Rubyist Magazine - スはスペックのス 【第 1 回】 RSpec の概要と、RSpec on Rails (モデル編)

    『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0063 号 バックナンバー Rubyist Magazine 0063 号 Rubyist Magazine 0062 号 Kaigi on Rails 特集号 RubyKaigi Takeout 2020 特集号 Rubyist Magazine 0061 号 Rubyist Magazine 0060 号 RubyKaigi 2019 直前特集号 Rubyist Magazine 0059 号 Rubyist

    kssm
    kssm 2013/06/09
  • Homebrew+rbenvでRuby 2.0.0-p0インストール - 130単位

    Ruby 2.0.0-p0 is released Ruby2.0がリリースされました。Homebrewとrbenvによるインストール手順です。rbenv/OpenSSL/Readlineがインストール済みで最新にする場合は各ツールをbrew upgrade <formula> してください。 Environments Mac OS X 10.8.2 Mountain Lion Homebrew 0.9.4 Update Homebrew Formula brew update OpenSSL, Readline brew install openssl brew install readline ruby-build brew uninstall ruby-build brew install --HEAD ruby-build --HEADでインストール済みだと以下のエラーが出るので、

  • Ruby 2.0.0で学ぶ、14個のデザインパターンを作りました[GoF][Design Pattern] - 酒と泪とRubyとRailsと

    GoFのデザインパターンとは、「プログラミングのベストプラクティスを体系化したもの」です。このベスト・プラクティスをしっかりと理解して設計すれば、ソフトウェア設計の効率を高めることができます。またデザインパターンが「プログラミングの思想」の共有をよりスムーズにしてくれます。先人たちの試行錯誤の結果を効果的に利用して、プログラミングをもっと楽しんでしまいましょう! 🗻 デザインパターンのポイントGoFのデザインパターンには下のプリンシパルがあります。 変わるものを変わらないものから分離する インタフェースに対してプログラミングし、実装に対して行わない 継承より集約 委譲、委譲、委譲 必要になるまで作るな(You Ain’t Gonna Need It./YAGNI) 🤔 デザインパターン一覧 アブストラクトファクトリ ビルダ ファクトリメソッド シングルトンパターン アダプタ コンポジッ

    Ruby 2.0.0で学ぶ、14個のデザインパターンを作りました[GoF][Design Pattern] - 酒と泪とRubyとRailsと
    kssm
    kssm 2013/06/04
  • Ruby で Sass のカスタム関数を書く

    Sass で関数を書く方法は 2 つあります。ひとつは Sass の @function ディレクティブ を使って Sass ファイル内に定義する方法。 $grid-width: 40px; $gutter-width: 10px; @function grid-width ($n) { @return $n * $grid-width + ($n - 1) * $gutter-width; } 簡単かつカジュアルに書ける反面、当然ながら Sass のネイティブ関数やディレクティブの制限を受けるので、できないことも多いです。とくに Sass は文字列系の関数があまり用意されておらず、不満を感じることも少なくありません。 もうひとつの方法は、Ruby でカスタム関数を書いて Sass を拡張する という方法です。Ruby の知識が必要で、かつ Sass ファイルに直接定義するのとは違って別フ

    Ruby で Sass のカスタム関数を書く
    kssm
    kssm 2013/05/27
  • 複数のファイル内の文字列を一括置換 | rakkyooの備忘録

    複数のファイルの文字列を一括置換.なおかつ,サブディレクトリも含めて全部置換したい場合にどうしたらいいのか探していました. terminal 上で簡単にできるとのこと. 方法としては, 「find」を使ってサブディレクトリまでファイルをチェック 「grep」を使ってファイル内の文字列を検索 「rubyのワンライナー」で一括置換 といった感じでできました. 1.「find」を使ってサブディレクトリまでファイルをチェック これは,とっても簡単で,たとえばCSVファイルをカレントディレクトリ「.」からサブディレクトリも含めて探したいときは,

    kssm
    kssm 2013/05/19
  • 覚えるテク[Ruby][Rails]JS/CSSファイルをControllerごとに分離する

    Rails3.1以降では全てのJS/CSSが結合+圧縮されますが、それぞれのControllerに属するJSファイル内でjQueryのセレクタを使用した場合に、意図しない挙動が発生することがあったため、Controllerは結合の対象外とすることにしました。 以下に行ったことをメモします。 設定内容 require_treeは指定されたディレクトリ以下のファイルを結合対象にしてしまうため、削除します。 ファイル:app/assets/javascripts/application.js //= require jquery //= require jquery_ujs //= require_tree . # この行を削除 ファイル:app/assets/stylesheets/application.css *= require_self *= require_tree . # この行を

  • Cookpad の本番環境で使用している Ruby が 2.0.0-p0 になりました - クックパッド開発者ブログ

    技術部・開発基盤グループの村田です。 クックパッド日から、番環境を Ruby 2.0.0-p0 に移行しました。Ruby 2.0.0-p0 は 2013年2月24日にリリースされた Ruby の最新バージョンです。新しい Ruby を使って気持ち良く開発するために、できるだけ早く Ruby をバージョンアップしようと尽力してきた結果が実りました。 Ruby のバージョンアップでレスポンスが高速になった クックパッドRuby 2.0.0 に対応したことで、ユーザと開発者の両者にとって、これまでよりも快適になっています。 Ruby のバージョン移行は、Ruby Enterprise Edition から Ruby 1.9.3-p392 を経由して Ruby 2.0.0-p0 へと段階的に実施しました。Ruby を Enterprise Edition から 1.9.3、そして 2.0

    kssm
    kssm 2013/04/10
  • Rails A/B testing by split gem

    4. やや強引に言葉を整理 広義な意味のA/B testing = split test ※人によって定義違うが ○ A/B test (marketing/lean startup etc) ■ 特定のUIを切替 ※今日話すsplitが ■ 直列にBefore/Afterを比較 どちらかというと こっち ○ split test(design/UXがどちらかというとこっち) ■ (主に)Pageレベルの切り分け ■ 並列に複数のpatternと比較 ○ 多変量テスト ■ 要素組み合わせ ■ 複数patternを比較 http://www.massivesplash.com/Blog/Entry/is-there-a-difference-between-split-test-and-ab-test

    Rails A/B testing by split gem
  • jewelerとgithubで始める初めてのRubyGem作成 - Web屋かもしれない人の日記 || WebJourney 開発ログ

    WebJourney用に新しく開発したCouchDB用のデータマッパー"CouchResource"ですが、ちゃんと公開しないとガラパゴスになりそうなので、RubyGem として利用できるようにしよう、と決心をして作業を始めました。 github のアカウントは作成済みである github でリポジトリを作る方法は知っている RubyGem の作り方は知らない 上記スペックの人間が、jewelerというgemの存在を知り、試用してみたら、[これはべんり]だったので記録しておきます。 続きを読む http://gems.github.com/ より。 gemspec のバージョンがあがったらgemをリビルドするよ! とあるので、gemspec の push とリリースはほぼ同じ作業と思った方がよいようだ。ということで release タスクというのがあるわけですね。

    jewelerとgithubで始める初めてのRubyGem作成 - Web屋かもしれない人の日記 || WebJourney 開発ログ
    kssm
    kssm 2013/03/25
  • mk-mode BLOG » Ruby – Ruby/OpenCV インストール!

    ようこそ、mk-mode SITE へ。 当サイトは自宅 Debian GNU/Linux サーバ上の Ruby on Rails で運用しています。主に趣味(サーバ構築、プログラミング等)を応用した情報を公開しています。

    mk-mode BLOG » Ruby – Ruby/OpenCV インストール!
    kssm
    kssm 2013/03/22
  • 知って得する21のRubyのトリビアな記法 ~ 21 Trivia Notations you should know in Ruby - hp12c

    ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。 知って得する21のRubyのトリビアな記法: melborne.github.com - ちょっとトリビアだけど 知っていると意外と便利なRubyの記法を 21個拾ってみたよ(Ruby1.9限定) 君なら全部知ってるかもしれないけど.. 1. 動的継承 Rubyのクラス継承では < 記号の右辺に クラス定数だけでなくクラスを返す式が書けるよ class Male def laugh; 'Ha ha ha!' end end class Female def laugh; 'Fu fu fu..' end end class Me < [Male, Female][rand 2] end Me.superclass # => Female Me.new.laugh

    知って得する21のRubyのトリビアな記法 ~ 21 Trivia Notations you should know in Ruby - hp12c
    kssm
    kssm 2013/03/22
  • ruby の inject をわかりやすく説明してみる - Λάδι Βιώσας

    ruby の inject って慣れないと少し理解しづらいよなーと思ったので、極力わかりやすい説明をしてみるテスト。 わかりやすいかもしれない説明 さて、1 から 10 までの合計を求めるこんな↓コードがあった場合 sum = 0 (1..10).each {|i| sum = sum + i } p sum # => 55 inject を使ってこのよう↓に書けます。 p (1..10).inject(0) {|sum, i| sum + i } each と inject でどのように書き変わってるかを図で示すとこんな↓感じ。 injectの引数 0 は、ブロックローカルな sum 変数の初期値になってます。で、ブロックの実行結果の値が sum に代入されて、2回目以降のループを実行します。ループしている間の、各変数とブロックの中身はこんな↓感じ。 sum i ブロックの中身(sum

    ruby の inject をわかりやすく説明してみる - Λάδι Βιώσας
    kssm
    kssm 2013/03/16