タグ

Rubyに関するgidooomのブックマーク (36)

  • GitHub - jenkinsci/jenkins.rb: Deprecated, see https://www.jenkins.io/jep/7

    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 - jenkinsci/jenkins.rb: Deprecated, see https://www.jenkins.io/jep/7
  • 第4回チューニンガソン(Tuningathon)で優勝してきた - @ijin

    3回目の参戦となる#tuningathonで@tnmtさんと共に優勝してきました。 やった事は相方のブログに書かれているので、補足。 開演前 朝起きると、やたらとアラートが飛んでいるので調べると、うるう秒のせいでサーバ達が高負荷状態に。 @tnmtさんも同じ原因で障害対応中で待ち合わせ時間には間に合わず、参加が危うい感じ。 自分の方はなんとか片付けて、ぎりぎり開演前に到着。 お題発表 前々からやって欲しかったRuby on Rails! で、Refinery CMSというブログのチューニング。 内心喜びました。 前半戦 作業開始前にはまず何よりもバックアップ。 いつでも環境を戻せるようにRailsのフォルダをコピーしてMySQLのdumpを取っておく。 速攻でrbenv + ruby-buildを入れて、rubyの最新バージョン(1.9.3-p194)をインストール。 ビルドの間、まずは環

  • 覚えるテク| [Ruby][Fluentd]in_tailの正規表現をテスト

    in_tailのformatに正規表現を書く時は、 (修正→設定ファイル読み込み→確認) x nとしてましたが、 もっと簡単にテストしたかったので、formatで使用する正規表現のテスト方法を調べてみました。 ソースを見てみると、どうやらfluent/parserの"RegexpParser"クラスで正規表現の解析を行なっているみたいなので、このクラスでテストをしてみました。 これで少し楽に! require 'time' require 'fluent/log' require 'fluent/config' require 'fluent/engine' require 'fluent/parser' $log ||= Fluent::Log.new format = /^\[(?<time>[^\]]*)\] (?<log>.*)$/ time_format = '%Y/%m/%d

    gidooom
    gidooom 2012/06/14
    超便利
  • GrowthForecastをインストール - kidoOooOoooOOom

    Fluentdで集めたログをGrowthForecastでリアルタイムにグラフ化したいのでとりあえずインストールした。 まずは必要なパッケージがインストールされているか確認 glib xml2 pango cairo cpanmをダウンロード。 curl -LOk http://xrl.us/cpanm chmod +x cpanmlocal::libも入れておくと便利らしいので入れておく。 cpanm local::libRRDtoolのインストール cpanm Alien::RRDtoolGrowthForecastのインストール git clone git://github.com/kazeburo/GrowthForecast.git cd GrowthForecast cpanm -lextlib --installdeps .GrowthForecastの起動 perl gro

    GrowthForecastをインストール - kidoOooOoooOOom
    gidooom
    gidooom 2012/06/13
    インストールしたのでメモった。
  • fluentdをインストールしてちょっと触ってみる - kidoOooOoooOOom

    fluentdは ruby 1.9以上じゃないと動かないのでインストール。今回はまっさらな環境(CentOS 5.4)にruby1.9.3コンパイルしてインストールする。 wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p0.tar.gz tar xvfz ruby-1.9.3-p0.tar.gz cd ruby-1.9.3-p0 ./configure./configureで、Cのコンパイラが無いというエラーが出た。gccを入れる。 yum install gccこれで ./cofigureが成功するので makeする。 make && make install次に、gemで fluentdを入れようとすると次のようなエラーが発生。 「It seems your ruby installation is missing psych

    fluentdをインストールしてちょっと触ってみる - kidoOooOoooOOom
    gidooom
    gidooom 2012/06/12
    今日ちょっと触ってみたのでブログ書いた。
  • Rails でよくある 5 つの間違い - 杉風呂2.0 - A Lifelog -

    以下の文章は、Mike Perham 氏のブログ記事を翻訳したものです。原文は2012年5月5日に公開されました。 Five Common Rails Mistakes http://www.mikeperham.com/2012/05/05/five-common-rails-mistakes/ Railsをそれなりに仕事で使ってきて多くの Rails アプリを見てきて、悪い Ruby コードを読み書きした。この記事では、だいたいすべての Rails のコードベースで見られる共通の間違いを5つ挙げる。 1. スキーマの仕様がないマイグレーション データモデルはアプリケーションのコアだ。スキーマに制約がないと、データはコードベースに存在するバグにより徐々に蝕まれていき、フィールドに値が入っているか信頼できなくなる。ここに Contact スキーマがあるとしよう。 create_table

    Rails でよくある 5 つの間違い - 杉風呂2.0 - A Lifelog -
  • poocs.net - このウェブサイトは販売用です! - poocs リソースおよび情報

    このウェブサイトは販売用です! poocs.net は、あなたがお探しの情報の全ての最新かつ最適なソースです。一般トピックからここから検索できる内容は、poocs.netが全てとなります。あなたがお探しの内容が見つかることを願っています!

    gidooom
    gidooom 2012/05/01
    capistranoで20個ぐらいのホストにタスク投げたら sshのエラーが出たけど max_hostsを設定すればエラー出なくなった。
  • JavaやC#の常識が通用しないRubyのprivateメソッド - give IT a try

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

    gidooom
    gidooom 2012/03/20
    Matzのコメント追記がよかった。
  • AWKのススメ - クックパッド開発者ブログ

    はじめまして。インフラチームの菅原といいます。 今年の7月に入社してから、コンソールとにらめっこする毎日を過ごしています。クックパッドのようにアクセスの多いサイトのサーバを扱うことが今まで無かったので、いろいろと勉強になることが多いです。 さて、インフラチームではサーバの状況をモニタリングして、サーバに問題がないかを常に把握するようにしています。そのため日常的にtailでログを追いかけているのですが、そんなときはAWKが非常に便利なことに気付き、最近はかなりAWKにハマっています。 今回は絶賛マイブーム中のAWKの活用例をご紹介したいと思います。 なぜAWKなのか? 残念ながらAWKの知名度はあまり高くないようで、社内でも「なぜRubyでやらないのか?」と聞かれることがありました。僕も入社するまではcutの代わりぐらいにしか使っていなかったのですが、あるときログ出力の整形に使って以来、AW

    AWKのススメ - クックパッド開発者ブログ
  • [Rails3] FasterCSVを使う(その3)

    実行環境: Rails 3.0.7 FasterCSV 1.5.4FasterCSVを使う(その3):CSV出力編CSV形式のテキストを出力するわけですが、出力のやり方は2通りあります。1つは文字列として取得する方法、もう1つはCSVファイルとしてローカルに(Railsアプリが動いているサーバ上に)書き出す方法です。 CSV形式の文字列を取得 CSVファイルに書き出す CSV形式の文字列として取得する使い方は簡単で、二次元配列を作ってあげるとCSV形式に組み立ててくれる、といった感じです。 csv_string = FasterCSV.generate do |csv| csv << ['1', 'Edward', 'steel'] csv << ['2', 'Roy', 'flame'] csv << ['3', 'Alex', 'iron-armed'] end 直接CSVファイルに書

    gidooom
    gidooom 2012/01/10
    やっとCSV出力できた。
  • デバッグ力: よく知らないプログラムの直し方 - 2011-12-06 - ククログ

    クリアコードではMozilla製品やRuby関連の開発だけではなく、広くフリーソフトウェアのサポートもしています。もちろん、サポート対象のソフトウェアの多くは私達が開発したものではありません。しかし、それらのソフトウェアに問題があった場合は調査し、必要であれば修正しています。 このようなサポートが提供できるのは、もともと、私達がフリーソフトウェアを利用したり開発したりしているときに日常的に問題の調査・修正をしていたからです。ソフトウェアを利用していると、問題に遭遇することはよくあることです。そのソフトウェアがフリーソフトウェアの場合は、開発者に問題を報告し、可能ならパッチを添えます。このとき、そのソフトウェアの内容を完全に把握していることはほとんどありません。しかし、それでも修正することができます。 それはどうしてでしょうか?今まではどのようにやっているのかを自分達でもうまく説明できなかっ

    デバッグ力: よく知らないプログラムの直し方 - 2011-12-06 - ククログ
    gidooom
    gidooom 2011/12/09
    「1.問題を再現する小さなプログラムを作成する。 2.問題のソフトウェアを変更しながら原因となっている箇所を特定する。 3.問題を修正する」
  • link_to のオプションとしてstyleを指定する。

    gidooom
    gidooom 2011/11/08
    memo.
  • Rubyのendは美の観点から必要だ。END HELLは要リファクタへの警告である。メソッド分離、{ }、Guard、三項、ポリモーフィズムで回避せよ! - hp12c

    ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。 Rubyのendは美の観点から必要だ。END HELLは要リファクタへの警告である。メソッド分離、{ }、Guard、三項、ポリモーフィズムで回避せよ! : melborne.github.com - Rubyのendは構文上の欠点だとされ 一部のRubyistから END HELLと忌み嫌われている その一方でRubyのendを愛し endを綴り続けることで 悟りの境地に達したRubyistもいる Rubyistは一日に何度もendと書くことで、 何事にも終わりがあることを日々確認しているのである by @nalsh*1 そしてこの私はというと 見習うべきRubyistの姿がそこにあるのに defと打つと私のエディタが勝手にendと補完するので 物事の終わりも

    Rubyのendは美の観点から必要だ。END HELLは要リファクタへの警告である。メソッド分離、{ }、Guard、三項、ポリモーフィズムで回避せよ! - hp12c
  • 7つの言語7つの世界 Ruby 2日目 - はなちん C-x C-c

    探してみよう 試してみよう 感想等 感想 クラスさえもClassクラスのインスタンス。全てがオブジェクト。 そしてModule.classはClassで、Module.class.superclassはModuleで…と頭がこんがらがりそう。 mixinの仕組みは便利ですね。Enumerableはいろんな演算を抽象化していて面白い。 試してみようはTree.rbがあんまりすっきり書けてない感じ。 文に「このレベルの抽象化でも少しは優れたプログラミング言語になるが、Rubyの真の秘術が登場するのはまだまだこれからだ。」と書いているので次の章が楽しみです。 疑問点 PHP 5.4のtraitもmixinのようなものなのかな? メモ 配列やハッシュやシンボルのリテラルは書き方いくつかあるので詳しくはhttp://doc.ruby-lang.org/ja/1.9.2/doc/spec=2flit

    7つの言語7つの世界 Ruby 2日目 - はなちん C-x C-c
    gidooom
    gidooom 2011/10/30
  • mapee.jp

    This domain may be for sale!

    gidooom
    gidooom 2011/10/21
  • Startupで採択すべきプログラミング言語 - 続きはwebで

    「どの言語を使うか」という問題は、実は当座の生産性の話だけではなく、会社のカルチャーやその後の採用に大きな影響を与えます。ですがーエンジニアが代表であってもーこの問題を意識している人は意外に少ない、というのが正直な印象です。今回は言語毎の特徴を踏まえつつ、どの言語を採択すべきかを考えたいと思います。※Web系に限定しています。 前置き (競合相手のうち)一番安全なのはOracleの経験者を募集しているところだ。 そういうところを警戒する必要は全く無い。また、JavaC++プログラマを募集しているところも安全だ。もしPerlPythonプログラマを 募集していたら、ちょっと気を付けたほうがいい。その企業の、少なくとも技術部門は物のハッカーがやっている可能性が高いからだ。もし私がLispハッカーの募集広告を目にしていたら、きっとかなり心配していただろう。[1] YCのPaul Graha

  • Rubyと大クラス主義とダックタイピング、そして名前重要 - ゆとRubyist日記

    最近、Javaを勉強したりしていて、RubyJavaとの対比で昔より客観的に見られるようになったので、Rubyの記事を書きたいと思います。自分でも消化しきれていない話なので、反論は大歓迎です。 内容は、大クラス主義とダックタイピング、そして名前重要に関してです。 大クラス主義 Rubyの考えでよく言われるものに、大クラス主義があります。例えば、RubyのArrayは配列を表すクラスです。しかし、Arrayができることは、単純に値を複数持てるだけではありません。Arrayを調べてみると、popやpushやshiftやunshiftがあります。つまり、RubyのArrayはキューやスタックとしても使えます。一方、JavaのArrayやArrayListでは、配列の要素を扱うことはできますが、そのままではキューやスタックとしては使えません。Javaでキューやスタックが使いたいのであれば、例えば

    Rubyと大クラス主義とダックタイピング、そして名前重要 - ゆとRubyist日記
    gidooom
    gidooom 2011/10/18
    「Javaはクラスをより重視しているのに対し、Rubyはメソッドをより重視しているように感じます。」
  • library open-uri

    要約 http/ftp に簡単にアクセスするためのクラスです。 Kernel.#open を再定義します。 使用例 http/ftp の URL を、普通のファイルのように開けます。 require 'open-uri' open("http://www.ruby-lang.org/") {|f| f.each_line {|line| p line} } 開いたファイルオブジェクトは StringIO もしくは Tempfile で すが OpenURI::Meta モジュールで拡張されていて、メタ情報を獲得する メソッドが使えます。 open("http://www.ruby-lang.org/en") {|f| f.each_line {|line| p line} p f.base_uri # <URI::HTTP:0x40e6ef2 URL:http://www.ruby-lan

    gidooom
    gidooom 2011/10/15
  • Railsエンジニアならこれだけは知っておけっていう便利メソッド - (゚∀゚)o彡 sasata299's blog

    2011年07月26日13:29 Ruby Railsエンジニアならこれだけは知っておけっていう便利メソッド Object#presence と Object#try という便利なメソッドがあることをご存知ですか?この2つのメソッドはとっても便利なのでちょっと紹介してみます。 Object#presence メソッド これは以下のような定義となっています。 def presence self if present? end present? メソッドというのはみんな大好き blank? の反対のメソッド (!blank?) です。 つまり、nil, false, [](空配列), {}(空ハッシュ), ""(空文字列), " "(半角スペースだけの文字列)であれば false、それ以外であれば true になります(blank? って半角スペースだけの文字列を true と判定するの知って

    gidooom
    gidooom 2011/09/10
    値チェックはスッキリさせたいっすよね。
  • ダック・タイピング - Wikipedia

    ダック・タイピング(英: duck typing)とは、Smalltalk、PerlPHPPythonRubyJavaScriptなどの動的型付けに対応したオブジェクト指向プログラミング言語に特徴的な、型付けのスタイル(作法)のひとつである。ダック・タイピングはポリモーフィズム(多態性)を実現する手段のひとつとして使われる[1]。 Pythonのリファレンスでは、ダック・タイピングは「あるオブジェクトが正しいインタフェースを持っているかどうかを決定するために、オブジェクトの型を見ることはしないプログラミングスタイルである」と説明されている。代わりに、オブジェクトが持つメソッドや属性(フィールドまたはプロパティ)が単純に呼ばれたり使われたりする。特定の型よりもインタフェースを重視することで、うまく設計されたコードは、ポリモーフィックな代入の許可による柔軟性を向上する[2]。 静的型付