タグ

ブックマーク / techracho.bpsinc.jp (14)

  • 特定のWebサイトだけたまに異常に遅くなる現象が発生した|TechRacho by BPS株式会社

    10Gbpsの回線を2導入して快適なはずの自宅のインターネット回線で、ある日、特定のWebサイトだけやたらと不安定なことに気づきました。 ログインが高確率でタイムアウトする。再試行すると成功する。 それ以外の画面遷移も、3回に1回位の確率で、10秒以上かかったりタイムアウトする。 解決までの記録です。 少し切り分けてみる まずは当然ながら、ブラウザ・PCルーター・ネットワーク・対象サイトなどを切り分けていきます。 対象サイトの障害? 最初はサイト側の問題かと思って気にしていなかったのですが、数ヶ月経っても改善せず、問い合わせてもシステム障害は確認されていないとのこと。 2回線あるうちのフレッツ光クロスの回線でだけ発生しており、auひかりの回線では発生していない。 フレッツ光クロスの回線では、別ブラウザはもちろん別PCからでも同じ現象が発生する。 フレッツ光クロスの回線では、時間帯を問わ

    特定のWebサイトだけたまに異常に遅くなる現象が発生した|TechRacho by BPS株式会社
  • Rails 6+Webpacker開発環境をJS強者ががっつりセットアップしてみた(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Rails 6: the missing developer setup guide - DEV Community 💻💻 原文公開日: 2019/11/19(最終更新: 2019/12/17) 著者: Vincent Voyer 日語タイトルは内容に即したものにしました。画像はすべて元記事からの引用です。 原文の目次は省略しました。原文の乱れは訳文で修正してあります。以下のRailsガイドもどうぞ。 Webpacker の概要 - Railsガイド 更新履歴: 2019/11/28: 初版公開 2021/05/06: 更新 👋皆さんこんにちは。記事では私がRubyRuby on Railsを学んだ一環として、ドキュメントに書かれていないことを全部盛りしました。RubyRailsのエコシステムは初めてなので、皆さまか

    Rails 6+Webpacker開発環境をJS強者ががっつりセットアップしてみた(翻訳)|TechRacho by BPS株式会社
  • Rails tips: Value Objectパターンでリファクタリング(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Refactor you Ruby on Rails application using value object pattern 原文公開日: 2018/01/31 著者: Paweł Dąbrowsk Value Objectは、Null Objectパターンと同様Rubyの純粋なオブジェクトです。こうしたオブジェクトは値を表現しますが、ユーザーオブジェクトのようなシステム内で一意のオブジェクトを表現するためのものではありません。Valueオブジェクトは常に値だけを返しますが、Policy Objectのように論理値(true/false)だけを返すのではなく、他の値を返すこともできます(ほとんどの場合文字列です)。このパターンにおけるルールは、「シンプルに保つこと」と、「オブジェクトが生きている間は属性値をしないこと」です。

    Rails tips: Value Objectパターンでリファクタリング(翻訳)|TechRacho by BPS株式会社
    ryonkn
    ryonkn 2018/03/27
  • Rails tips: Policy Objectパターンでリファクタリング(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Refactor your Ruby on Rails application with policy object pattern 原文公開日: 2018/01/29 著者: Paweł Dąbrowsk Policy Objectは操作の分離に用いられる素朴なRubyオブジェクトのことです。個人的にこのパターンが好きですが、オブジェクトにPolicy Objectとしてふさわしい名前をつけるために従っておくべきルールがいくつかあります。 Policy Objectの規則 メソッド名の末尾は常に?にする メソッドはtrueかfalseのいずれかだけを返す 渡された属性は変更しない コードはシンプルな読み出しロジックだけを行う: データベース呼び出しなどは行わない デモ サンプルのクラスを作ってみましょう。後ほどPolicy Ob

    Rails tips: Policy Objectパターンでリファクタリング(翻訳)|TechRacho by BPS株式会社
    ryonkn
    ryonkn 2018/03/23
  • Rails tips: Null Objectパターンでリファクタリング(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Refactor your Ruby on Rails app with null object pattern 原文公開日: 2018/01/22 著者: Paweł Dąbrowsk Null Objectパターンによるリファクタリングは、指定されたオブジェクトが存在するかどうかをチェックして、存在しなかった場合に指定の属性やメソッドのデフォルト値を返す操作に適用できます。このような操作ではif条件が必要になることが多く、そのままではコードが少々読みづらいうえにテストも少しばかりやりにくくなります。Null Objectパターンを使うことでコードが非常にシンプルになり、テストも簡単になります。 Null Objectパターンを使うメリットをわかりやすく示すため、次のような事例を考えてみましょう。UserとPostという2つのク

    Rails tips: Null Objectパターンでリファクタリング(翻訳)|TechRacho by BPS株式会社
    ryonkn
    ryonkn 2018/03/23
  • Rails tips: カスタムバリデータクラスを作る(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Ruby on Rails / Validations - build your own custom validator 原文公開日: 2018/01/11 著者: Paweł Dąbrowsk Railsに組み込まれているバリデータだけでは足りなくなると、独自のバリデーションルールを書かなければならなくなります。これをやりだすとモデルがたちまち肥大化してしまうので、これを避けるにはバリデーションロジックを別クラスに切り出すのが一番です。これによってコードがすっきりと分離され、再利用しやすくなります。 モデルのバリデーション バリデーションコードを切り離す方法をご覧いただくために、モデルのクラスをサンプルとして1つ作成し、まずはそこに単純なバリデーションルールを記述します。 class User < ActiveRecord::

    Rails tips: カスタムバリデータクラスを作る(翻訳)|TechRacho by BPS株式会社
    ryonkn
    ryonkn 2018/02/15
  • Ruby: Kernel#itselfの美学(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: The aesthetics of Ruby - Kernel#itself method 原文公開日: 2017/12/26 著者: Karol Galanciak 最近私は、Rubyでよくある問題を解決しました。コレクションで渡される項目ごとの頻度をカウントするという問題です。この問題の解決方法はいくつか考えられます。最初は以下のようにEnumerable#injectまたはEnumerable#each_with_objectを用い、空のハッシュをアキュムレータの値として使いました。 collection.each_with_object({}) { |item, accum| accum[item] = accum[item].to_i + 1 } ハッシュのデフォルト値を用いて、もう少しスマートな方法に変えました。 co

    Ruby: Kernel#itselfの美学(翻訳)|TechRacho by BPS株式会社
    ryonkn
    ryonkn 2018/01/22
  • Railsで大きなファイルを扱う際のポイント|TechRacho by BPS株式会社

    Railsで大きなファイルを扱う際のポイントをまとめてみました。 前提 大きなファイルとは だいたい100MB~10GBくらいのファイルをダウンロード・アップロードするのを想定することにします。 数MB程度だと、特別な工夫なしでもそれほど問題になりません。10GBを超えてくると、気をつけるべき点が変わってくるかと思います。 以下では主にサンプルとして、1GBのファイル(ISOファイルやZIPファイルなど)を想定します。 環境 以下のような環境を想定します。 Railsは4系 Nginx + Unicornのスタンダードな構成 サーバ1台のシンプルな構成(ロードバランサを使用した複数台構成については、末尾に少し記載しています) ダウンロード ファイルのダウンロード まずは、Railsアプリから大きなファイルを配信するケースを考えましょう。 たとえば、ISOファイルをサーバ内に保存しておいて、

    Railsで大きなファイルを扱う際のポイント|TechRacho by BPS株式会社
  • Haml で閉じタグに悪戦苦闘してRails を学んだお話|TechRacho by BPS株式会社

    Rails を使い始めてからたまにテンプレートでHaml を使う機会があるのですが、先日下記HTML のようなものを書きたいと思いました。 <div class="hoge"> <div class="fuga">item1</div> <div class="fuga">item2</div> </div> <div class="hoge"> <div class="fuga">item3</div> <div class="fuga">item4</div> </div> まずはERB に起こしてみました。 <% items.each_with_index do |item, index| %> <% if index % 2 == 0 %> <div class="hoge"> <% end %> <div class="fuga"><%= item.to_s %></div> <

    Haml で閉じタグに悪戦苦闘してRails を学んだお話|TechRacho by BPS株式会社
  • Railsらしく書こう(社内勉強会)|TechRacho by BPS株式会社

    こんにちは、hachi8833です。 今回から趣向を変えて、弊社筆頭プログラマーのbabaさんによる社内講義録を元に記事を書きます。第一回は「Railsらしく書こう」です。 Railsらしく書こう 特にプログラミング経験の浅いうちは、コーディングに関するさまざまな慣習を知らないがために遠回りをしてしまうことがあります。この講義では、Rails (とRuby) の基的なコーディングルールについて説明します。 なお、この講義はRails3時代のものを元にしていますのでご了承ください。 基的なコーディングスタイル class CommentsController<ApplicationController def index() @comment=Comment.find ( params[:id] ) if(request.format==:xml) then render(:layout

    Railsらしく書こう(社内勉強会)|TechRacho by BPS株式会社
  • 最近知ったRailsの便利なメソッド

    最近になって知った Railsの便利なメソッドを紹介したいと思います。 pluck http://api.rubyonrails.org/classes/ActiveRecord/Calculations.html#method-i-pluck User.select(:id).where("age >= ?", 20).map(&:id) こんなコードが User.where("age >= ?", 20).pluck(:id) こうなります Rails3系では指定できるカラムはひとつだけでしたが、Rails4から複数カラムを指定できるようになりました。 User.where("age >= ?", 20).pluck(:id, :name) #=> [[1, '太郎'], [2, '花子'], [3, '二郎']] Rails3系でもmultipluck というgemを使えば同じことが

    最近知ったRailsの便利なメソッド
    ryonkn
    ryonkn 2013/08/21
  • Rails3でhttpsからhttpへのリダイレクトを行う方法|TechRacho by BPS株式会社

    ここ最近記事書くのをサボってました.すみません.今回はSSL redirectの話. Rails 3.1以降ではforce_sslを使うことで,サイト全体や特定のactionについて,SSLを強制することができます. しかし,force_sslではHTTP -> HTTPSへのリダイレクトはできるのですが,その逆のHTTPS -> HTTPへのリダイレクトをサポートしていません. つまり,force_sslを使った場合,一度httpsのURLに入ってしまった後に相対パスでリンクを遷移すると,httpアクセスで構わないページもhttpsでアクセスしてしまうことになります. 場合によってはHTTPSでアクセスする必要の無いページはできるだけHTTPでアクセスしてほしい,というケースがあるので,今回はそういったことを実現しようぜ,という話です. このような処理が必要とされるケースとしては以下のも

    Rails3でhttpsからhttpへのリダイレクトを行う方法|TechRacho by BPS株式会社
  • TechRachoのロゴが新しくなりました | TechRacho

    既にお気づきになっている方も多いと思いますが、TechRachoのロゴが新しくなりました。 BPSスタッフが技術に関して自由に発言しているイメージから吹き出しをイメージしたデザインになっています。 まだ、不慣れなため不格好な部分もあると思いますが、気に入って頂ければ幸いです。 これからもTechRachoをどうぞよろしくお願いします。 さて、web制作でロゴ用意すると、それを使ってfaviconを作成する事も多いと思います。折角ですので、今回はマルチアイコンのfaviconを簡単に作成する方法をご紹介します。 マルチアイコンのfaviconを簡単に作成する方法 faviconはブラウザーでURLの左側やブックマークリストに表示されるアイコンですが、マルチアイコンにしておくとデスクトップにショートカットを作成した場合でもアイコンが表示さる様になります。 それぞれサイズも異なり、 ウェ

  • Rails 3&4: Arel::Tableを使ってなるべく生のSQLを書かずに済ます方法|TechRacho by BPS株式会社

    Railsでプログラムを書いるとSQLを直接記述する機会が意外と多いので、 なるべくRubyらしく書く方法がないか調べてみました。 ORなどかなり基的な構文でもarel_tableを使う必要があるのですね。 というわけで、Arel::Table を使ってみました。 動作確認環境は以下の通りです。 ruby: 1.9.3-p392 Rails: 3.2.13 arel: 3.0.2 MySQL: 5.1.65 検索条件をORで繋げたい 基的な構文ですがSQLを直接記述する場合が多いのではないでしょうか? User.where("name = ? OR name = ?", "太郎", "花子").to_sql #=> "SELECT `users`.* FROM `users` WHERE (name = '太郎' OR name = '花子')" なるべくRubyで書こうとするとこうな

    Rails 3&4: Arel::Tableを使ってなるべく生のSQLを書かずに済ます方法|TechRacho by BPS株式会社
  • 1