タグ

rubyに関するtmf16のブックマーク (41)

  • mruby + ngx_mrubyでアプリケーションを実装するという選択肢 - LIFULL Creators Blog

    はじめまして、技術基盤部の相原(kaihar4)です! 今回は、アプリケーションのクラウドサービスへの移行の一環で、 Amazon S3から取得した画像URLを含むファイルを元に、そのURLの外部画像を取得して返す機能 をmrubyで書き直してAWSに移行した話をしていきたいと思います。 この機能は元々モノリシックなアプリケーションの一機能として動いていたもので、これを切り出してAWSに移行するというのが今回私に与えられたミッションでした。 このアプリケーションは歴史が長く、その間ほとんどメンテナンスされていませんでした。 ディストリビューションは古くPHPのバージョンも4系、したがってそのまま持っていくという選択肢はなく、AWS上に新規にインスタンスを構築することになります。 弊社にはAPI部分をPHPからRubyに移行する方針があるということもあり、Amazon Linux上にRuby

    mruby + ngx_mrubyでアプリケーションを実装するという選択肢 - LIFULL Creators Blog
    tmf16
    tmf16 2016/09/09
  • The Ruby Style Guide日本語版 · fortissimo1997/ruby-style-guide · GitHub

    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

    The Ruby Style Guide日本語版 · fortissimo1997/ruby-style-guide · GitHub
    tmf16
    tmf16 2014/10/10
  • Writing Fast Ruby

    Originally presented at Baruco 2014. Updated for RubyConf Portugal 2014. Video here: https://www.youtube.com/watch?v=fGFM_UrSp70.

    Writing Fast Ruby
    tmf16
    tmf16 2014/09/28
  • 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
    tmf16
    tmf16 2014/09/28
  • 正規表現によるバリデーションでは ^ と $ ではなく \A と \z を使おう

    正規表現によるバリデーション等で、完全一致を示す目的で ^ と $ を用いる方法が一般的ですが、正しくは \A と \z を用いる必要があります。Rubyの場合 ^ と $ を使って完全一致のバリデーションを行うと脆弱性が入りやすいワナとなります。PerlPHPの場合は、Ruby程ではありませんが不具合が生じるので \A と \z を使うようにしましょう。 はじめに 大垣さんのブログエントリ「PHPer向け、Ruby/Railsの落とし穴」には、Rubyの落とし穴として、完全一致検索の指定として、正規表現の ^ と $ を指定する例が、Ruby on Rails Security Guideからの引用として紹介されています。以下の正規表現は、XSS対策として、httpスキームあるいはhttpsスキームのURLのみを許可する正規表現のつもりです。 /^https?:\/\/[^\n]+$/

  • Dynamic Method Definitions | Tenderlove Making

    TL;DR: depending on your app, using define_method is faster on boot, consumes less memory, and probably doesn’t significantly impact performance. Throughout the Rails code base, I typically see dynamic methods defined using class_eval. What I mean by “dynamic methods” is methods with names or bodies that are calculated at runtime, then defined. For example, something like this: class Foo class_eva

    tmf16
    tmf16 2013/06/25
  • Rails 4 パート1:Rails 4の最新情報 (翻訳版) | Engine Yard Blog JP

    この記事は英語版のブログで2013年1月22日に公開された記事の翻訳版です。記事中ではEngine Yard CloudはRails4をサポートしていないとありますが、現在はRails4をご利用頂けます。 注:これはRails 4の変更点と新しい特徴機能をお伝えする2部構成の投稿のパート1です。パート2は来週掲載されますので、そちらも併せてご覧ください。 Ruby on Railsフレームワークの4つ目のメジャーバージョンの公開がいよいよ近づいてきました。公式なリリース日はまだ発表されていませんが、候補版は今年初めに公開される見通しです。今回のバージョンは、作成に1年以上を費し、内部の設計方法に大きく手を入れています。モジュラー化がさらに進み、主なコードベースの無駄をなくすために特徴機能の多くを別々のジェムに組み込んでおり、また、廃止予定の機能は公式にサポートされなくなっていますが、当に

    tmf16
    tmf16 2013/06/14
  • Ruby 2.0.0-p195 リリース | Ruby

    Posted by nagachika on 14 May 2013 Ruby 2.0.0-p195 をリリースします。 これは 2.0.0 の最初のパッチレベルリリースです。 このリリースには拡張ライブラリ DL/Fiddle のセキュリティフィックスが含まれます。 DL および Fiddle におけるオブジェクト汚染フラグバイパス(CVE-2013-2065) その他にもたくさんのバグフィックスや最適化、ドキュメントの修正が含まれています。主な変更点は以下の Changes を参考にしてください。 Downloads https://cache.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p195.tar.bz2 SIZE: 10807456 bytes MD5: 2f54faea6ee1ca500632ec3c0cb59cb6 SHA256: 0be3

    Ruby 2.0.0-p195 リリース | Ruby
    tmf16
    tmf16 2013/05/15
  • エイプリルフールかと疑ってしまう。BashがまるでRubyのようになる·Skull MOONGIFT

    SkullはBashの中でRuby風にオブジェクトを扱えるようにしてしまうソフトウェアです。 BashはサーバやMac OSXなどで誰しもが使っているかと思います。しかし記述がレガシーな感じで書きづらいと思ったことも多いはず。そこで使ってみたいのがBashをOOにしてくれるSkullです。 Skullを読み込みます。 strという文字型オブジェクトを定義します。そうするとlengthなんてメソッドが使えるようになります。 upcaseで大文字になったり。 methodsなんてメソッドまであります。 OSのバージョンも取れます。 System.osでmacと返ってきます。 SkullはRubyのようなオブジェクトをBashに提供してくれます。Bashがいきなりモダンな感じになって、面白いソフトウェアです。 SkullはBash製、GPL v3のオープンソース・ソフトウェアです。 MOONGI

    エイプリルフールかと疑ってしまう。BashがまるでRubyのようになる·Skull MOONGIFT
  • プロトタイプ開発用のRailsプラグイン「Chanko」を2.0.0にアップデートしました - クックパッド開発者ブログ

    技術部・開発基盤グループの中村です。 この度、クックパッドが開発し、オープンソースとして公開しているRuby on Rails向けプロトタイプ開発用のプラグイン「Chanko」を再設計し、Ruby 2.0.0 への移行に引き続き Chanko 2.0.0 をリリースしました。Chanko 2.0.0 では、これまでのバージョンと互換性を保ちながら、主に実行速度やコードの可読性について改善が加えられています。 http://cookpad.github.io/chanko/ Chankoとは Chankoは、素早く安全に新機能のプロトタイプを行うためのフレームワークです。クックパッドでは今現在でも、Chankoを使って多くの機能を独立して開発し、対象範囲を限定して公開することで新機能の検証サイクルを回しています。Chankoを利用して拡張した機能でエラーが起きた場合、拡張前の機能に自動的に切

    tmf16
    tmf16 2013/04/10
  • 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

    tmf16
    tmf16 2013/04/09
    早い
  • ResqueからSidekiqに移行するときにつまずいたところ - Qiita

    Ruby 1.9.3p125 Rails 3.2.8 sidekiq 1.2.1 -- Sidekiqって? ひとことで言ってしまうと、Resqueのマルチスレッド版。 Resqueはマルチプロセスで動くけど、 Sidekiqはシングルプロセスでマルチスレッド。 Sidekiq http://mperham.github.com/sidekiq/ Sidekiqの特徴って? Resqueに比べてリソースの節約が出来る。 Redis上のスキーマがRedisと同じなので移行が楽 Jobの再試行がわりときれいに実装されてると思う。(個人の感想) お金払えば、Sidekiq Proなんていう高機能なのが使える。(知らなかったw) Sidekiqの大変なところは? Resqueに比べると、 スレッドセーフなコードを書かないといけないのが少し手間かも。 くらいだろうか? Sidekiqの導入につまづい

    ResqueからSidekiqに移行するときにつまずいたところ - Qiita
    tmf16
    tmf16 2013/04/05
  • 言語女子会3: Pythonが恋愛に悩んでRubyに相談しましたの巻 - 西尾泰和のはてなダイアリー

    言語女子会: undefとnullは両方必要?、言語女子会2: varは必要?/privateがない?の続編です。 Ruby恋愛相談 Python: 最近悩んでるのよね… Ruby: んー、何に? Python: 自分はどんな人が好きなのかなぁ…とか… Ruby: あー、そんなの簡単よ!一緒にいて楽しいことよ! *1 Python: そんなの誰とだって仲良くなったら楽しいんだから差別化にならないじゃん Ruby: そうとは限らないわよ、たとえば、あっ… C: ごめーん、会議が長引いちゃって遅れちゃった!(髪の毛ファサーっ) Python: ああ…なるほど… C C: 何の話?え、恋愛に悩んでる?そんなの簡単よ。卓越性よ。 Python: 卓越性?? C: そうよ。なんらかの分野で「わたしが一番」という状況を作ることよ。そうすれば男の側からいくらでも寄ってくるわ。 Python: なるほど

    言語女子会3: Pythonが恋愛に悩んでRubyに相談しましたの巻 - 西尾泰和のはてなダイアリー
    tmf16
    tmf16 2012/03/26
    Rubyちゃんが微妙にpythonを煙たがってる気がする
  • HTTPで正しくキャッチボールをするには | Lab by engineering@dwango.jp

    皆さんはキャッチボールは好きですか? 私はバスケットボールの方が好きです。 キャッチボールは、自分と相手双方がボールをうまくキャッチできるように投げる必要があります。これは、サーバーとクライアントの間でも同じで、クライアントから投げられたボール(リクエスト)をサーバーは正しく投げ返す(レスポンス)必要があります。 ここで、サーバーがボールをあさっての方向に投げたり、異常なスピードで投げ返すとどうなるでしょうか。おそらくクライアントはそのボールを取ろうとしますが、追いつけずにボールを落としたり、どこかにぶつけたりしてしまうでしょう。 今回は、HTTPについて、どうして正しくレスポンスを返さないといけないのかということについて、Rackを使用して解説していきます。 対象読者 Webアプリケーション開発に興味のある方、これから開発を行おうとしている方 Rackについて まず、今回使用するツール

    tmf16
    tmf16 2011/11/29
    悲しいけど、これ意識できてない開発者は多い
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    tmf16
    tmf16 2011/11/14
    ほぼ同意
  • Railsでruby-debugを試したら10分で使えた - ひげろぐ

    前々から名前は知っていたけど、なんだか身構えてしまっていて試していなかったもの。 試してみたらすぐに簡単に使えて激しく便利でした。もっと早くやっておいたらよかった。 これでデバッグのときに変数の内容を表示するようなデバッグコードをがんばって埋める必要がなくなりました。 インストール gemでさっくりと。 gem install ruby-debug コードにブレークポイントを仕掛ける require 'ruby-debug' とライブラリを読み込んで、ブレークポイントを仕掛けたい場所に debugger と書くだけ。 def hoge i = 1 debugger end みたいなかんじ。 動かす WEBrickを動かしてアプリをいじっているとブレークポイントを設定した箇所で実行が停止する。 WEBrickを実行したコンソールにプロンプトが出るのでそこでコマンドを打つと現在の変数の状況など

    tmf16
    tmf16 2011/09/15
  • Ruby on Rails Guides: Ruby on Rails 3.1 Release Notesを自分用に和訳してみた - joker1007’s diary

    英語の勉強兼、自分への備忘録としてRails 3.1 のリリースノートを和訳してみました。 ところどころ、良く分かってないので直訳になってたり、微妙に不可解な日語になってたりする箇所があります。 ご容赦ください。 間違いに気付いた方はご指摘していただけるとありがたいです。 1 Upgrading to Rails 3.1 (サポート環境以外は省略) Rails3.1はRuby 1.8.7以上が必要。 1.8.7-p248,p249はマーシャルのバグでRailsがクラッシュする。 1.9.1はオススメしないので、1.9系を使う時は1.9.2を使ってね。 2 Creating a Rails 3.1 application (省略) 3 Rails Architectural Changes 3.1 Assets Pipeline Rails3.1での大きな変更はAssets Pipelin

    Ruby on Rails Guides: Ruby on Rails 3.1 Release Notesを自分用に和訳してみた - joker1007’s diary
    tmf16
    tmf16 2011/09/02
    "これ需要あんのかなあ?" あるよ
  • あるある共有サイト、ウチらのあるあるを作りました - #詰んでる日記

    http://uchiaru.okwave.jp/ サービスの内容的には、みんなが一度は体験したことがあるようなエピソードを共有してあるあるしあうというシンプルなものです。twitterのIDでログインして、twitterにシェアすることができます。 作った経緯は、社長がいきなり「あるある共有サイトが欲しいんだよねー。電車の中で女子高生たちがあるあるあるあるあるあるって言ってて、それを聞いて作りたくなった」みたいなことを言い出したのが発端です。しかも一週間でリリースしようとか言い出して、いつの間にか付き合ってしまった結果、サービスがリリースされました…。 http://uchiaru.okwave.jp/contents/131 実際は一週間なんてことはなく、プロトタイプ作成に2,3日かけて、そのあとOKが出たのでデザイン作ってもらう間にテストコード書いたりリファクタリングしたり別の仕事

    あるある共有サイト、ウチらのあるあるを作りました - #詰んでる日記
    tmf16
    tmf16 2011/08/23
  • 使いやすくなった Rails 3.1 の Engine - passingloopの日記

    Rails エンジン (Rails Engine) は、ひとことで言うと、Rails アプリケーションの再利用を容易にする仕組みです。Rails エンジンに関することは、https://github.com/rails/rails/blob/master/railties/lib/rails/engine.rb に全て書いてあるのですが、自分用のメモとして Rails エンジンの {良いところ,作り方,使い方} を簡単にまとめてみます。 この記事は、執筆時点の最新版 (Rails 3.1.0.rc5) をもとにしているため、8/22 リリースとアナウンスされている 3.1.0 では参考にならないかもしれません。ご注意を。 Rails エンジンとは 他の Rails アプリケーションを自分の Rails アプリケーションから利用したい、という場合、どのようにすればよいでしょうか。Rails

    使いやすくなった Rails 3.1 の Engine - passingloopの日記
    tmf16
    tmf16 2011/08/05
  • Ruby を利用した大規模ウェブサービスの開発・運用 - RubyKaigi 2011 発表資料 - クックパッド開発者ブログ

    技術部開発基盤グループの id:secondlife こと @hotchpotch こと舘野です。 先日の RubyKaigi 2011 で、「Ruby を利用した大規模ウェブサービスの開発・運用」という内容で発表させていただきました。 前半はクックパッドのサーバアーキテクチャ、各種サーバのアプリがどんな風に動いているのかの紹介を、後半では「開発」→「デプロイ」→「フィードバック」→「開発」…という、サービス開発で行われているサイクルを30人以上エンジニアが居るクックパッドでどう高速に回し続けているかのお話しです。 Ruby を利用した大規模ウェブサービスの開発・運用 [slideshare id=8630511&w=425&h=355&sc=no] View more presentations from hotchpotch 当日のRubyKaigi 2011 での発表の動画は、以下を

    Ruby を利用した大規模ウェブサービスの開発・運用 - RubyKaigi 2011 発表資料 - クックパッド開発者ブログ
    tmf16
    tmf16 2011/08/03