rubyに関するlinuxdiaryのブックマーク (73)

  • Amazon ECSで動かすRailsアプリのDockerfileとGitHub Actionsのビルド設定 - メドピア開発者ブログ

    CTO室SREの@sinsokuです。 Dockerイメージのビルドを高速化するため、試行錯誤して分かった知見などをまとめて紹介します。 AWSのインフラ構成 assetsもECSから配信し、CloudFrontで /assets と /packs をキャッシュする構成になっています。 Rails on ECS デプロイ時にassetsが404になる問題 以前の記事に詳細が書かれているため、ここでは問題の紹介だけしておきます。 Rails等のassetsファイルをハッシュ付きで生成し配信するWebアプリケーションの場合、ローリングアップデートを行うと、アップデート時に404エラーが確立で発生してしまいます。 引用: メドピアのECSデプロイ方法の変遷 Dockerfile 実際のDockerfileには業務上のコード、歴史的な残骸などが含まれていたので、綺麗なDockerfileを用意しま

    Amazon ECSで動かすRailsアプリのDockerfileとGitHub Actionsのビルド設定 - メドピア開発者ブログ
  • The Rails Doctrine(日本語訳) - Qiita

    (訳者注: 原文は https://rubyonrails.org/doctrine/ です。しばらく寝かして問題なさそうであれば家に投げようかと思っています。おかしいところがあればコメント・編集リクエストをお待ちしております。) The Rails Doctrine By David Heinemeier Hansson in January, 2016 Ruby on Railsの驚異的な台頭は、斬新な技術とタイミングによるところが少なからずあります。しかし、技術的な優位性は時間の経過とともに失われていきますし、タイミングの良さだけでは長期にわたってムーブメントを維持できません。そのため、Railsがどのようにして現役であり続けることができたのかだけでなく、どのようにしてそのインパクトとコミュニティを成長させてきたのかについて、より広範な説明が求められています。私が提唱するのは、永続

    The Rails Doctrine(日本語訳) - Qiita
  • Only My Rails Way

    これは何 「Rails Wayに沿って〜」とはReview欄などでよく言われるが、定義が人によってぶれている気がするので俺のRails Wayを示した記事です。 もはや来のモノとは別物かも知れませんが、俺はこういう観点でRailsをみて、コードを書いているよ、ということを知ってもらう意味でもこの記事を公開することにしました。 前提として、「数人以上のチームでプロダクトを実際に開発して運用する」場合の自分のスタンスを示したものです。(私も仕事では独自DSLは書きませんが自由研究用途なら自分も独自DSLを書いたりします。) それでは、いってみましょう。 Model層 データベースの操作およびビジネスロジックを記述する。 テーブルの属性は原則NOT NULLにするべき。どうしても要件上NULLを許容しなければならない場合のみNULLを許容する。 Controllerからparamsを無思考で渡

    Only My Rails Way
  • Ruby でデバッグする ruby_jard というツールが凄まじくすごい - Secret Garden(Instrumental)

    今日 Ruby Hacking Challenge in Hamada.rb に参加したときに ruby_jard という Ruby のデバッグツールを教えてもらいました。 これがかなり凄まじくすごかったのでちょっとまとめてみます。 ruby_jard とは ruby_jard とは Ruby のコードをデバッグするツールになります。 ruby_jard | Just another ruby debugger. Provide a better experience while debugging Ruby rubyjard.org 立ち位置としては byebug のようなデバッグツールになっており、コード上で jard というメソッドを呼び出すとそのタイミングでプロセスが停止して、コンソール上から Ruby のコードを実行できるような形になっています。 実際にどういう形でデバッグするの

    Ruby でデバッグする ruby_jard というツールが凄まじくすごい - Secret Garden(Instrumental)
  • Railsのログイン認証gemのDeviseのインストール方法 - Rails Webook

    概要 DeviseはRailsで最も人気なログイン認証機能を提供しているgemです。 RailsにDeviseのインストール方法を説明します。 また、初期設定、ログイン用のユーザーモデルを作成といったDeviseの導入部分を説明します。 次回は、「Deviseのカスタマイズ方法」について説明します。 次々回は、「DeviseとOmniAuth-Twitter連携(Twitterでログインする)」です。 動作確認 ・Rails 4.1.4 ・Devise 3.2.4 目次 deviseのインストールと初期設定 deviseのUserモデルの作成 (おまけ) deviseの10個のモジュール説明 (おまけ) よく使うdeviseのHelperメソッド 1. deviseのインストールと初期設定まず、Railsプロジェクトの作成をします。 $ rails new devise $ cd devi

    Railsのログイン認証gemのDeviseのインストール方法 - Rails Webook
  • JQueryで自動補完 - Qiita

    概要 Google検索などでよく使われるAutocompleteをjQueryのAutocomponentで実現します。サジェストする内容に関してはAjaxでGETして取ってきます。 実装手順 以下の手順で実装していきます。 1. jQuery Autocompleteを静的コンテンツにて実装 2. 静的コンテンツ部分をAjaxで入力した内容に応じて取ってくる JQuery Autocompleteの実装 // 以下3ファイルを読み込みます。 <link type="text/css" rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/cupertino/jquery-ui.min.css" /> <script type="text/javascript" src="http://code.jquery.com/

    JQueryで自動補完 - Qiita
  • Rails/jQuery UI AutocompleteでDBデータからオートコンプリート

    Rails でオートコンプリート機能を実装する機会があり、jQuery UI Autocomplete を使って実現したので備忘録メモ。オートコンプリート機能とは、Google の検索窓でも表示されるような、入力済みの文字列を元に候補のメニューを表示して入力を補完してくれる機能です。Rails 用には jquery-ui-rails という gem があるので、それを利用させて頂きました。 Autocomplete | jQuery UI joliss/jquery-ui-rails Ajax による通信で、サーバーのDBテーブルからオートコンプリートの候補を取得して表示します。 — 環境 — Rails 4.1.6 jquery-ui-rails 5.0.5

    Rails/jQuery UI AutocompleteでDBデータからオートコンプリート
  • Railsでawesome_nested_setとjsTreeでインタラクティブにツリー構造を操作する - Rails Webook

    インタラクティブに階層構造を操作できるjQuery pluginのjsTreeを使い、上記のようにUIを向上させます。 「Railsでawesome_nested_setを使って階層構造を作成する」の実施を前提にしています。 動作確認 Ruby 2.1.2 Rails 4.2.0 awesome_nested_set 3.0.2 jsTree 3.0.9 目次 1. jsTreeでクライアント側の動きを実装する 1.1. RailsにjsTreeをインストールする 1.2. jsTreeのプラグインでカテゴリーを移動できるようにする 1.3. カテゴリーの追加、リネーム、削除を追加する 2. jsTreeの各アクションとRailsAPIを連携させる 2.1. カテゴリの初期データをサーバーから取得する 2.2. カテゴリの追加/リネーム/削除アクションを実装する 2.3. カテゴリの移動

    Railsでawesome_nested_setとjsTreeでインタラクティブにツリー構造を操作する - Rails Webook
  • Railsでawesome_nested_setを使って階層構造を作成する - Rails Webook

    Photo by Flickr: amatsuscribbler's Photostream awesome_nested_setとは、モデルを階層構造に管理できるようにするgemです。 フォルダ階層、カテゴリ階層、コメントへのリプライでの階層などツリー構造を表したい箇所で使うと便利です。 今回は、次のように、モデルを階層構造で表示、作成、更新できるようにします。 動作確認 Ruby 2.1.2 Rails 4.2.0 awesome_nested_set 3.0.2 バージョン3は「Rails 4」をサポート、バージョン2は「Rails 3」をサポート、2.0以前は「Rails 2」をサポートしています。 目次 awesome_nested_setのインストール awesome_nested_setの基的な使い方 awesome_nested_setでカテゴリを階層構造にする 1. a

    Railsでawesome_nested_setを使って階層構造を作成する - Rails Webook
  • 【Ruby】機械学習をするためのgemをつくった - Qiita

    概要 Rubyistでも機械学習がしたい! ということで、タイトルの通りRuby機械学習のためのgemをつくってみました。機械学習のための、と書きましたが、試作品ということもあり2016年4月現在実装されているのは多層パーセプトロンと自己符号化器のみです。今後、時間が空いたときに少しずつ更新して、中身を増やせていければよいなと思っています。 Rubyにも機械学習のためのライブラリがいくつかあるのは知っていますが、選択肢を増やすためにも稚拙ながら実装してみました。 インストール ソースコード https://github.com/seinosuke/sabina デモ examples/ 以下にあるサンプルの実行結果をデモとして示します。これらのデモの実行にはgemに加えてv5.0以上のgnuplotが必要です。 多層パーセプトロン その1 以下の図はタグ付けされた訓練データの画像と、学

    【Ruby】機械学習をするためのgemをつくった - Qiita
  • 【ruby】 メソッド探索から見る、モジュール・特異メソッド・特異クラス - 圧倒亭グランパのブログ

    rubyを書き始めて間もない頃、 「なんで NoMethodError なんだ...。あ、メソッド定義にself 付けたら通った。」 みたいなことがありました。 rubyを読んでいると、そのあたりがハッキリとイメージできるようになったのでまとめておきます。 参考にした 年明けからひたすらRubyを読んでいます。読了したのは以下。 現在は Effective Ruby を読んでいます。 これらを読んでいくと、中途半端に理解していた部分がカチッとハマるのでオススメです。 ※ 今回のコードは ruby 2.2.0 で試したものです。 オブジェクトとクラスの関係 サンプルコードを見てみましょう。 class C def c_instance_method @my_var = 1 end end obj = C.new 当初、自分はオブジェクトとクラスの関係を以下のように考えていました。 (

    【ruby】 メソッド探索から見る、モジュール・特異メソッド・特異クラス - 圧倒亭グランパのブログ
  • デフォルトで対応!?Ruby on Railsの主なセキュリティ対策を知る | プログラミング教育ナビ

    Webアプリケーションを作る上で、情報セキュリティは非常に重要な課題の一つです。プログラミング初心者からすると、そんなところまで手が回らないと考えてしまいますが、アプリケーションに脆弱性があると、開発者だけでなくユーザーも深刻な被害を被る可能性があるため、いかなる開発者も情報セキュリティから目を逸らすことはできません。しかし、幸いRuby on Railsは、主なセキュリティ対策はデフォルトで行われています。とはいえ、Webアプリケーションにどのような脆弱性が潜んでいて、Railsでどのように対策を行っているかを知っていて損はありません。是非この機会に、情報セキュリティに関する知識を深めておきましょう! 情報セキュリティとは 情報セキリティの目的は、アクセスを認められた人が情報資産にアクセスすることができ、且つ不正なアクセスを防ぐことにあります。ここでいう情報セキュリティは、機密性(Con

    デフォルトで対応!?Ruby on Railsの主なセキュリティ対策を知る | プログラミング教育ナビ
  • Railsで導入してよかったデザインパターンと各クラスの役割について - masato_hiのブログ

    3年ほどRailsを書いてきてある程度知見が溜まってきたので、忘れないためのメモとしてKPTと導入例を交えながらダラダラと書いています。 見出しの命名規則は クラス名/ディレクトリ名の単数形をupper camel caseにしたもの + KPT です。 Keepは今後も使うもの、Problemは開発規模によっては問題が発生する(した)もの、Tryは現在使用していないが使用したほうが良いと思っているものです。 これらすべてを導入すれば上手くいくというわけでもないので、開発規模に合わせて適切に採用していくと良いと思います。 DDDやデザインパターン等見聞きはしているものの詳しいわけではないので間違っている部分等あるとは思うのでその辺りはコメントでご指摘お願いします。 はてブコメント欄で頂いた指摘内容等についてはまとめの後でまとめて返答を記載しています。 Asset (Keep) app/as

    Railsで導入してよかったデザインパターンと各クラスの役割について - masato_hiのブログ
  • Rubyによるデータ解析

    Rubyは、Webアプリケーションの領域を中心に利用が広がっているが、データ解析の分野ではライバルであるPythonに大きく遅れを取っている。発表では、Rubyによるデータ解析の現状と今後の発展についての展望を述べた。 DCワークショップ2016(http://dcworkshop.github.io/201602/0_about.html)での発表。

    Rubyによるデータ解析
  • Ruby on Railsを仕事にしていくための第一歩 - 酒と泪とRubyとRailsと

    最近仕事Railsコードレビューをする時間が長くって、いろいろ指摘するんですが、 Railsって「Railsチュートリアル」には書いていないのに覚えないと仕事にならないこと多すぎだなと気付かされます。 どこでどんなふうにすれば、プロになろうとしている人が最短距離で知識を獲得できるかはわからないですが、 今思っている特に大事だなと思うことつらつらと書いていきます。 😀 プログラミングの重要な要素まず、Railsの前にプログラミングで全般的に特に重要と思っている要素を紹介します。 - リーダブルなコード - ネーミングルールについて - 言語・フレームワークのルール - 変数のスコープについて - プロジェクトの設計思想 - オブジェクト指向・コードの再利用性 - 正しいテストケースを作る プロジェクトによって変わるので、すべては書きませんが、ぜひ意識してどこを学ぶべきかを考えてみてくだ

    Ruby on Railsを仕事にしていくための第一歩 - 酒と泪とRubyとRailsと
  • Railsアプリケーションにおけるエラー処理(例外処理)の考え方 - Qiita

    はじめに Railsアプリケーションを格的に作り込んでいくと、「エラー」とは無縁ではいられません。 しょうもないバグでエラーが発生することもありますし、ほとんど不可抗力ともいえるような大規模なネットワーク障害でエラーが発生することもあります。 エラーの種類がなんであれ、エラーが起きた場合は「原因を素早く特定し、速やかに復旧させること」と「あるエラーが引き金になって、さらに大きなエラーに引き起こさないようにすること」が重要です。 エラー処理を適切に実装していれば、原因の特定や復旧もすばやくできますし、さらに大きなエラーを引き起こす可能性も少ないです。 また、ソースコードも比較的シンプルに保てます。 逆にエラー処理が不適切だと原因の特定に時間がかかったり、異常なデータがどんどん増えてさらに大きなエラーを引き起こしたりします。 ソースコードにも無駄に複雑な処理フローや条件分岐がたくさん出てきて

    Railsアプリケーションにおけるエラー処理(例外処理)の考え方 - Qiita
  • 知って得する!55のRubyのトリビアな記法

    Rubyはたのしい言語です。Rubyを触っているとマニュアルにも書いていない「小さな発見」に遭遇することがよくあります。このような「発見」は、プログラムの質や効率の改善には直結しないかもしれません。いや、むしろチームプログラミングでは妨げになる可能性すらあります。しかしその一方で、言語自体が自分の知らない領域を持ち続けていることが、その対象に対する興味を失わせないための大きな要因である、というのもまた疑いのない事実なのです。つまり「発見」はたのしさに直結しているのです。 このブログにおいて「知って得するRubyのトリビアな記法」というタイトルで、今まで3回記事を書きました。 “知って得する21のRubyのトリビアな記法” “第2弾!知って得する12のRubyのトリビアな記法” “第3弾!知って得する12のRubyのトリビアな記法” これらのトリビアには、ネット検索で見つけたもの、Twitt

  • Webスクレイピングライブラリ "Yasuri" をリリースしました - Qiita

    はじめに こんにちは.私はWebスクレイピングが大好きなのですが、Rubyでもっと簡単にスクレイピングができればと思い、ライブラリを書いてみました. ようやくREADMEとUSAGEが書けたので公開しようと思います. ソースはGithubで公開しています. 特にドキュメントの英語が大変怪しいので、つっこみいただけると喜びます. tac0x2a/yasuri gemでも公開しているので、以下のコマンドで簡単にお試しできます. 簡単なサンプルと解説を書いてみました. Yasuriでお手軽スクレイピング よろしければ使ってみてください>< Yasuri とは Yasuri (鑢) は簡単にWebスクレイピングを行うための、"Mechanize" をサポートするライブラリです. Yasuriは、スクレイピングにおける、よくある処理を簡単に記述することができます. 例えば、 ページ内の複数のリンクを

    Webスクレイピングライブラリ "Yasuri" をリリースしました - Qiita
  • Mechanize - Ruby Mechanize wiki (ja)

    Ruby Mechanize wiki (ja) Ruby の Mechanize の wiki のよてい トップページページ一覧メンバー編集 Mechanize 最終更新: kitamomonga 2010年10月06日(水) 18:03:39履歴 Tweet Mechanize サーバにアクセスするための「Web ブラウザ」を表現するクラスです。このクラスのオブジェクトを操作してウェブにアクセスします。 require 'rubygems' require 'mechanize' require 'kconv' # アクセスのためのオブジェクトを作成 agent = Mechanize.new # Rubyの日語サイトのトップページ uri = URI.parse('http://www.ruby-lang.org/ja/') # uri にアクセスしてページを取得 agent.ge

    Mechanize - Ruby Mechanize wiki (ja)
  • SBI証券の発注スクリプト - それマグで!

    システムトレードが流行りだ。一瞬で動く値動きを追いかけられるのは、GSとか大手の社員だけだ。素人にはシステムトレードのAPIが公開されない。 ミリ秒単位のトレードとかすごいね 東京証券取引所は、ミリ秒単位で注文を捌けるらしいが、一般素人はできない。 なので、大手のヘッジファンドの狩り場になっている気がする。 素人でもできるだけ早く発注できないか。と考えてスクリプト組んでみた。 しかし、株価をチェックできないとミリ秒単位で発注できないので発注スクリプトだけでは大雨できないね。どうしたものか。できるだけ遅延なくリアルタイム株価出す方法ないかな。 SBI証券の注文用のクライアント SBIのバックアップサイトをベースに作っているのでそれなりに、長期間動くと思います。 gems に登録しようと思ったけど、既に同じようなものがあったんで遠慮しておく。 あと、バックアップサイトは4/3秒つまり、1.33

    SBI証券の発注スクリプト - それマグで!