タグ

関連タグで絞り込む (335)

タグの絞り込みを解除

rubyに関するluccafortのブックマーク (125)

  • パーフェクトRails著者が解説するdeviseの現代的なユーザー認証のモデル構成について - joker1007’s diary

    最近、パーフェクトRuby on Railsの増補改訂版をリリースさせていただいた身なので、久しぶりにRailsについて書いてみようと思う。 まあ、書籍の宣伝みたいなものです。 数日前に、noteというサービスでWebフロント側に投稿者のIPアドレスが露出するという漏洩事故が起きました。これがどれぐらい問題かは一旦置いておいて、何故こういうことになるのか、そしてRailsでよく使われるdeviseという認証機構作成ライブラリのより良い使い方について話をしていきます。 (noteRailsを使っているか、ここで話をするdeviseを採用しているかは定かではないので、ここから先の話はその事故とは直接関係ありません。Railsだったとしても恐らく使ってないか変な使い方してると思うんですが、理由は後述) 何故こんなことが起きるのか そもそも、フロント側に何故IPアドレスを送ってんだ、という話です

    パーフェクトRails著者が解説するdeviseの現代的なユーザー認証のモデル構成について - joker1007’s diary
    luccafort
    luccafort 2020/08/18
    Deviseは責務てんこ盛りなのでちゃんと綺麗に責務を分割するだけでこうなるんだよ!というお手本のようなコードで勉強になった。
  • チェリー本の増刷(第5刷)が決まりました&これまでに書いたサポート記事のまとめ - give IT a try

    お知らせ 先日、技術評論社の編集者さんから「プロを目指す人のためのRuby入門(通称チェリー)の4回目の増刷(第5刷)が決まりました」と連絡がありました! 増刷嬉しい〜😆これもひとえに今まで購入してくださったみなさんのおかげです。どうもありがとうございます! プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで Software Design plus 作者:伊藤 淳一発売日: 2017/11/25メディア: Kindle版 ちなみに増刷というのは、出版社が在庫を補充するために、まとまった部数を追加で印刷することを言います(書籍の内容は同じです)。 言い換えると、「増刷される=在庫がなくなるぐらい順調に売れている」ということなので、著者や出版社にとってはとても嬉しい知らせになります。 まあ、普通の読者さんにとっては「ふーん」という話題ですよね😅 僕も自分で

    チェリー本の増刷(第5刷)が決まりました&これまでに書いたサポート記事のまとめ - give IT a try
    luccafort
    luccafort 2020/07/21
    最初の頃大変お世話になったのでもっともっと必要な人の元へ届いてほしい。紙媒体版はあるのでKindle版をせっかくだから購入しようかなぁ。たまに読み返して確認したいことがあるんですよね。
  • CircleCIの実行を速くした - pockestrap

    先週仕事でやったのをメモします。 CI力が低いので、記事を公開することでツッコミをもらうのが目的です。 モチベーション 弊社ではCIの実行が1回あたり20分ほどかかっています。 これはわりとストレスなので速くしたいです。幸いにも削れそうなところが2つ見つかったので削ってみました。 Shallow Clone CircleCIではデフォルトのcheckoutを使用するとリポジトリの全体をcloneしてきます。 これを回避するためにshallow cloneを導入しました。 まず、次のようなコマンドを定義します。 commands: shallow-clone: description: 'Git clone shallowly' steps: - run: name: 'shallow clone' command: | set -x echo "machine github.com log

    CircleCIの実行を速くした - pockestrap
    luccafort
    luccafort 2020/07/09
    ブクマしたと思ってたらしてなかった。
  • Kyoto.rb Meetup 20191221 - おうさまのみみはロバのみみ

    もう日付が変わってしまったんだけど2019年最後のKyoto.rbに参加してきた。 kyotorb.doorkeeper.jp scrapbox.io 個人的には非常に楽しかった反面、いつもだけど反省点が見つかったので書き起こして次回に活かしたい。 やったこと 前半戦 scrapbox.io コードリーディングとその司会の両方を初めてやった。 コードリーディング自体が初めてだったので全て手探り状態だったことで参加していただいた方に申し訳なく思った。 特に初心者の方がいたけれども一度も意見というか質問が出来ない空気のまま突っ走ってしまったのはよくなかった。 誰がどのくらい何について知っているのか?ということを事前に知るのは結構ハードルが高い。 今回でいうとFaradayのコードを読んでいたわけだけどそもそもどういう認知の状態かを最初に確認すべきだったかな。 使ったことがある、名前すら初めて、

    Kyoto.rb Meetup 20191221 - おうさまのみみはロバのみみ
    luccafort
    luccafort 2019/12/22
    日付的には昨日だけど今日参加したイベントのログを書き起こした。
  • AWS Lambda CI/CD俺的ベストプラクティス - くりにっき

    Lambdaで動くアプリやフレームワークの事例はよく見るのですが、LambdaのCIやCDにしやすさに主眼をおいた紹介はあんまり見ないので現時点での自分のベストプラクティスのメモです tl;dr; このエントリで書いていること Lambdaをデプロイするのに肝になること デプロイしやすさに着眼したフレームワーク紹介 論外 コンソールからアップロードする できなくはないがかなり厳しい Terraform Apex 8/12 17:20追記 実用レベル Serverless Framework AWS SAM native extension問題と戦う Amazon LinuxのEC2インスタンス内でビルドする Amazon Linux互換のDockerイメージを使う Serverless Frameworkのプラグインを使う ライブラリをインストールするジョブとデプロイするジョブを分ける 【

    AWS Lambda CI/CD俺的ベストプラクティス - くりにっき
    luccafort
    luccafort 2019/08/12
    この手の話、「俺のベストプラクティスはこうなんだけどもっといい方法があるなら教えてくれ!」というのはどこも同じなのでみんなつらい思いしてるんだなって思う。
  • RailsのControllerにApplicationService相当のロジックを書くのはありなしや? - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    誤解を産んでいそうだったので追記します。ここでいうApplicationServiceというのは、いわゆるレイヤードアーキテクチャのアプリケーション層のApplicationServiceレイヤの話です。別の言葉だと、「Usecase層」とか言う言葉で呼ばれたりするアレのことです。追記おしまい。 Railsにおいては、ApplicationService相当のロジックをコントローラーに書いても良いものとする— でもわかるしんぺい入門 (@shinpei0213) June 4, 2019 これについてです。 結論から先にいうと、ぼくは「正しい」と思っています(ただ、自分ではあまりやらず、ApplicationServiceに切り出しちゃいますが、これは好みの問題だと思っています)。 なぜ正しいと思うのか。それを考える際に、まずは「一般的に、なぜControllerとApplication

    RailsのControllerにApplicationService相当のロジックを書くのはありなしや? - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    luccafort
    luccafort 2019/06/07
    “なぜここでみんな(たとえば)「UserSignupApplicationService」を作ってそれを呼び出すだけにしないんだろう”このケースではそうかなって思うけどちょっとこれは趣旨がズレている気がする。
  • RubyKaigi 2019で登壇してきました #rubykaigi - joker1007’s diary

    4/18 - 4/20で開催されていたRubyKaigi 2019に参加し登壇してきました。 今回の登壇内容は「Pragmatic Monadic Programming in Ruby」というタイトルです。 スライドは以下。 speakerdeck.com 実装はこちらです。READMEの整備が全然出来てないのと、APIがまだ変わる可能性があるので、gemとして正式リリースするのはまだやってないのですが、近々ちゃんとリリースします。 github.com Ruby黒魔術師として、自分が良いなと思っているデザインパターンであるモナドを、Rubyの世界で理想的に表現するならどうなるかということを考えて発表テーマとしました。 今回、ASTがRubyレベルから簡単に触れる様になったので、それを活用してみたかったというのもあります。 内容としてはAST変換を駆使して、あるパターンの変数代入構文を乗

    RubyKaigi 2019で登壇してきました #rubykaigi - joker1007’s diary
    luccafort
    luccafort 2019/04/23
    "RubyKaigiの登壇者は前提知識のレベルとかある程度すっ飛ばして、もう話しをしたいコアの所ばかり喋っているから面白い"わかる。話わからんけどどういう思考でそうなった?!みたいな謎解き要素の面白さがある。
  • 週刊Railsウォッチ(20190311-1/2前編)「Rails Conductor」14年ぶり復活なるか?、RubyGemsに複数の脆弱性、2009年のRailsエコシステムほか|TechRacho by BPS株式会社

    2019.03.11 週刊Railsウォッチ(20190311-1/2前編)「Rails Conductor」14年ぶり復活なるか?、RubyGemsに複数の脆弱性、2009年のRailsエコシステムほか こんにちは、hachi8833です。 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを社内有志で(鍋のように)つっついたときの会話の再構成です👄 毎月第一木曜日に「公開つっつき会」を開催しています: お気軽にご応募ください ⚓3/7(木)の公開つっつき会 3/7(木)の公開つっつき会にお集まりいただいた皆さま、ありがとうございます!🙇。 通常は週刊Railsウォッチに収録されている会話(つっつきボイス)を匿名化していますが、今回はRailsチュートリアルやRailsガイドやCoderDo

    週刊Railsウォッチ(20190311-1/2前編)「Rails Conductor」14年ぶり復活なるか?、RubyGemsに複数の脆弱性、2009年のRailsエコシステムほか|TechRacho by BPS株式会社
    luccafort
    luccafort 2019/03/13
    ”したら確かに開いた、すげー!
  • Rubyの式展開(string interpolation)についてまとめ: `#{}`、`%`、Railsの`?`|TechRacho by BPS株式会社

    2021.09.30 Rubyの式展開(string interpolation)についてまとめ: `#{}`、`%`、Railsの`?` 🔗 1. 一般的な「string interpolation」とは まずは一般的な話から。プログラミング言語で文字列を出力するときに、文字列の一部を変数の値や式の評価結果に差し替えたいことが非常によくあります。 "信号: 赤" "信号: 黄" "信号: 青" 上の文字列リテラル(" "で囲まれている部分)のうち、「赤」「黄」「青」を何らかの方法で変数から送り込んで差し替える操作を一般にstring interpolationと呼びます。 "信号: ●" # ←この●を「赤」「黄」「青」に差し替えたい 3つの文字列リテラルを使い分けるより、●を「赤」「黄」「青」だけ差し替える方が楽ですし、文字列リテラルが無駄に長くならずに済みます。 なお、次のような文

    Rubyの式展開(string interpolation)についてまとめ: `#{}`、`%`、Railsの`?`|TechRacho by BPS株式会社
    luccafort
    luccafort 2019/03/11
    動的言語では割とよく見かけるけど静的言語だとこのあたりどうしてるんだろう?昔少しJava触ったときは文字連結してたけど。
  • 「GraphQL」徹底入門 ─ RESTとの比較、API・フロント双方の実装から学ぶ|ハイクラス転職・求人情報サイト AMBI(アンビ)

    scalar型を新しく定義するためにはscalarキーワードを使います。例えば、Date型を新しく定義するには次のようにします。 scalar Date スキーマではこれだけですが、実際に使う際はGraphQL処理系に対してさらにシリアライズとデシリアライズを定義することになります。 GraphQL組み込みのscalar型は先にあげたものだけなので、例えばバイナリ、日付と時刻、HTML/XML、BigIntなどを必要に応じて追加することになるでしょう。ただしその場合、サーバーサイドとクライアントサイドでシリアライズ・デシリアライズの実装を一致させる必要があります。 Enum enum(イナム)はscalar型の一種で、特定の値のみを持つ型です。例えば、組み込みscalar型であるBooleanをenumで宣言すると次のようになるでしょう。 enum Boolean { true false

    「GraphQL」徹底入門 ─ RESTとの比較、API・フロント双方の実装から学ぶ|ハイクラス転職・求人情報サイト AMBI(アンビ)
    luccafort
    luccafort 2019/03/09
    ようやく読み切ったぞ!!!気になったのが2点あって記事へのアクセスを制限するようなユーザ制限を行うときGraphQLだとどうやるのだろう?もう1つがサーバ側がエラー返すときはRESTと同じ感覚でいいのかな?
  • Railsは2019年も「あり」か?#2 Railsの長所と向いている用途(翻訳)|TechRacho by BPS株式会社

    2019.01.29 Railsは2019年も「あり」か?#2 Railsの長所と向いている用途(翻訳) #1: 統計を調べる #2: Railsの長所と向いている用途(記事) #3: Railsの短所と不向きな用途、他の選択肢など Railsを使っているアプリ(2019年版) 実際のところ、相当たくさんあります。 This is pretty amazing. Both GitHub and Shopify are huge, billion dollar companies running on the original apps made over a decade ago. And they now both on the latest Rails, helping to push the framework forward 🙏🌟👏 https://t.co/DsWqCjy

    Railsは2019年も「あり」か?#2 Railsの長所と向いている用途(翻訳)|TechRacho by BPS株式会社
    luccafort
    luccafort 2019/02/04
    後述されるRailsのデメリットがメリットよりも大きくなったときにRailsを別の言語やフレームワークに剥がして乗せ換えるというのがかなり大変というのも1つデメリットな気がする。
  • 女性も参加しやすい(でも女性限定ではない)Ruby勉強会を企画中です #tokyogirlsrb - give IT a try

    お知らせ イベントページを公開しました!託児室もあります!たくさんのご参加をお待ちしております😃 techplay.jp はじめに タイトルの通りですが、現在、女性も参加しやすいRuby勉強会を有志のRubyistと企画しています。 まだ固まっていない部分もあるので変更される点が出てくるかもしれませんが、このエントリではこの勉強会の概要や開催のきっかけ等を書いてみようと思います。 【もくじ】 はじめに 女性も参加しやすい勉強会を開催しようと思った動機ときっかけ 女性の参加者や登壇者が目立ったRubyConf 男性でも女性でも興味がある勉強会には気軽に行けるようになってほしい 女性向けであることを明記しないと、女性の参加者は集まりにくい 勉強会の概要 登壇者と発表内容 ターゲットとなる参加者の方 運営チーム Q&A Q. 女性限定ではなく男性も参加できるのはなぜですか? Q. Rails

    女性も参加しやすい(でも女性限定ではない)Ruby勉強会を企画中です #tokyogirlsrb - give IT a try
    luccafort
    luccafort 2019/01/11
    "お願い:託児スペースのスポンサー企業さんを募集しています"めっちゃいい話し。やはり女性エンジニアの登壇者を増やすことが一番効果的なのかもなー。
  • 年末なのでBug Bashしてみたら盛り上がった - 弥生開発者ブログ

    Misoca開発チームの北村です。 年末の寒波で山に雪が増えることを期待しています。 年末だしBug Bashやってみた 年越しまでWork-In-Progressな作業を持ち越したくない(年明けに記憶を取り戻すのが大変そう) 休暇直前に大きなリリースはしたくない ということで、この機会にBug Bashをやることにしました。Misocaで開催するのは初めての試み。 Bug Bashのやり方などはKyashさんの下記の記事を参考にしました。 blog.kyash.co Bug Bashやってみた 普段一緒に仕事しないメンバーで3チームを作り、Misocaを叩いてみました。 いじわるな入力:めちゃくちゃ長い文字列、HTMLの要素を書き換えて来想定しない値を設定する ブラウザを2つ立ち上げて、同じデータを同時に編集する URLを書き換えて他の人の情報が見れないか 何度もreloadしたりsu

    年末なのでBug Bashしてみたら盛り上がった - 弥生開発者ブログ
    luccafort
    luccafort 2019/01/04
    "自分でやるとバグでそうなところを無意識に避けるクセがでちゃうんだよなー"めちゃわかる。
  • バッチ処理の一部で 30 分以上かかっていた処理を 14 秒で終わるようにした話 - @watson1978 の日記

    Ubiregi Advent Calendar 2018 の 18 日目です。 ユビレジではたくさんのお客様の大量の POS データをお預かりしており、様々なバッチ処理も実行されています。今回は特定のケースでバッチ処理の一部が 30 分以上かかっていた処理を 14 秒で終わるようにした話について書きたいと思います。前回の Ruby 2.5 の SEGV と闘った話 - @watson1978 の日記 に引き続き DTrace を使った話になります。 はじめに ユビレジでは CSV ファイルでお客様が特定のデータをダウンロードしたりアップロードできる機能があります。CSV ファイルにエクスポートしたり、CSV ファイルから DB に取り込む処理を Worker を起動してバッチ処理しています。 大量のデータを保有しているアカウントと同量のデータを用意して手元の環境で試したところ時間がかかるこ

    バッチ処理の一部で 30 分以上かかっていた処理を 14 秒で終わるようにした話 - @watson1978 の日記
    luccafort
    luccafort 2018/12/21
    なるほど、DTrace知らなかったけど便利そう…と思ったけどブコメみてプロファイラ調べたらこっちのほうが良さそうなきがしてきた。なんか特別な問題あったのかな?
  • [Ruby]消費税計算にはBigDecimalを使いましょう - Qiita

    消費税計算でありがちな浮動小数点問題 ちょっと電卓で 1800 x 1.08 を計算してみてください。いくつになりましたか? はい、 1944 ですね。 ではターミナルからirbを開いて、 1800 * 1.08 と打ち込んでください。

    [Ruby]消費税計算にはBigDecimalを使いましょう - Qiita
    luccafort
    luccafort 2018/10/27
    Float型をBig Decimal型に突っ込んでバグ出してしまったので先人の知恵は偉大。
  • RailsDevelopersMeetup2018 ランチスポンサーまでの俺たちの道のり - 弥生開発者ブログ

    こんにちは、@mugi_uno です。 健康診断で善玉菌が多いと言われました。毎朝のヨーグルトが効いてます。 さて、以前のエントリ*1で予告をしていましたが、2018/3/24(土) に行われた Rails Developers Meetup 2018(以下RailsDM)にてMisocaは「Railsバージョンを最新に保つ俺たちの話 〜2重弁当添え〜」というタイトルでセッション&お弁当スポンサーをさせていただきました。 今回は、「イベントを引き受けてから当日の発表まで、Misocaではどんな風に準備を進めていたのか?」 といった点にフォーカスした、少し毛色の違う内容でお送りします。 ランチスポンサーを引き受けることになったきっかけ RailsDM自体との関わりについては、第4回開催の時に私個人でWebpackerについてLT*2をさせて頂きました。その縁もあり、Misocaにランチスポン

    RailsDevelopersMeetup2018 ランチスポンサーまでの俺たちの道のり - 弥生開発者ブログ
    luccafort
    luccafort 2018/04/05
    単純にスポンサーええやん!という話ではないというのがわかってよい。事後検証をきちんとやってるのいいな、真似していこう。
  • Railsを始めて一ヶ月半経ったので振り返りをする - ゆとり日記

    「Webアプリケーションエンジニアになるぞ!」という意気込みで事業会社に転職し、Railsのプロダクトコードを書き始めて少し経ったので現状を振り返ってみる。 プロダクトコードでRailsを書いてみての感想 なかなかに楽しい。 設計を格的に考えると答えは出てこないし、プロダクトコードはがそもそも複雑だし、PullRequestのレビューは厳しいし・・といった感じで頭を抱える事案は多いものの、自分の血肉となっているので良しとする。 実戦に入るにあたってやったこと・やっていること 定番のサイト達 Railsチュートリアル Railsにもなかなか慣れなかったけど、Ruby文化になかなか慣れることが出来ずに苦戦。 1回の挫折を挟み、完走まで1ヶ月以上かかった。 Railsの教科書 Railsチュートリアルよりも内容がコンパクトだったので、一時期こっちに逃げていた。 感覚をつかむには、まずこっちを

    Railsを始めて一ヶ月半経ったので振り返りをする - ゆとり日記
    luccafort
    luccafort 2018/03/23
    "ActiveRecordがイミフ過ぎた"クソわかる。 ファットController問題はRailsの場合ServiceかViewModelでなんとかしろ!という雑な認識なのだけどServiceが捉える範囲が広くなりすぎるみたいな話しもありよくわからない。
  • Cookpad TechConf 2018 開催報告 - クックパッド開発者ブログ

    こんにちは、技術広報を担当している外村です。 2018年2月10日にエンジニア向けのカンファレンス、Cookpad TechConf 2018を開催しました。当日はたくさんの方に参加いただき、活気あるカンファレンスになりました。ご来場の皆様当にありがとうざいました。 新しい試みとして、当日の司会をAmazon Pollyの音声合成で行なったのですが、こちらもみなさんにお楽しみいただけたようでした。 講演資料・動画 当日の講演資料および動画を公開いたしましたので是非ご覧になってください。 基調講演: 毎日の料理を楽しみにする挑戦をし続けた20年 by 橋 健太 コーポレート戦略部部長の橋による基調講演でイベントはスタートしました。クックパッドはテックカンパニーとしてどのように成長してきたか、グローバル展開をどのように行ってきたか、現在取り組んでいる新プロジェクトについての話などがあり

    Cookpad TechConf 2018 開催報告 - クックパッド開発者ブログ
    luccafort
    luccafort 2018/02/22
    今回も京都の地から動画配信みてたけど個人的に一番おもしろかったのがcookpad storeTVの話しだなー。ソフトウェア開発とは別軸の問題をcookpadらしく解決していってるのが面白かった。
  • ブログに技術書の内容を丸写しする問題点と、オリジナルなコンテンツを書くためのアイデア - give IT a try

    はじめに 「プロを目指す人のためのRuby入門」を出版して以来、で学んだ内容をブログに載せてくれている方をよく見かけます。 それ自体は著者として大変嬉しいのですが、たまに「ん?これはちょっと・・・」と思うようなブログ記事を見かけるときがあります。 具体的にいうと、の内容を丸写ししているだけのブログ記事です。 このエントリではの丸写しがなぜいけないのか、かわりにどういうブログを書けばいいのか、ということについて書いていきます。 の内容を丸写ししているブログの例 の内容を丸写しをしているブログというのは文字通り「丸写し」しているブログです。 具体的なイメージを共有するために「こんな感じ」という例を載せておきます(特定の誰かのブログを意図しているわけではありません)。 タイトル「第2章 2.2.3 文の区切り」 「プロを目指す人のためのRuby入門」を読んでいるので、勉強した内容をメモ

    ブログに技術書の内容を丸写しする問題点と、オリジナルなコンテンツを書くためのアイデア - give IT a try
    luccafort
    luccafort 2018/01/24
    ブログは感想とか書けるんだけどgithubとかにサンプルコード上げた場合はどうなるんだろうなーと思うときは確かにある。書籍によっては「githubはOKだけど可能なら書籍の引用してね!」とか書いてある。
  • ActiveRecordでINの中が一万個とかにならないようにする - かみぽわーる

    この記事は MySQL Casual Advent Calendar 2017 の23日目の記事です。 みなさんORマッパーは使っていますか? 僕は仕事とか趣味でActiveRecordというORマッパーを使っているんですけど、こいつ例えば Team.preload(players: :high_score).to_a みたいなことをするとすぐ SELECT `scores`.* FROM `scores` FROM `scores`.`id` IN (a, b, c, ...数千個続く...) みたいなクエリを生成しよるんですけど、MySQL 5.7に上げたときに range_optimizer_max_mem_size の制限で実行計画がテーブルスキャンに落ちてえらい目にあったことがありました。MySQL側で range_optimizer_max_mem_size = 0 することで

    ActiveRecordでINの中が一万個とかにならないようにする - かみぽわーる
    luccafort
    luccafort 2017/12/25
    “どうやらOracleにはINの中の個数が1000個までしか入れられないという制限があるようで”へー知らなかった。IN句で上限に達したことはないし、そういうのはレビューで弾きたいけどたまに現れるので知見としていい。