並び順

ブックマーク数

期間指定

  • から
  • まで

201 - 240 件 / 2800件

新着順 人気順

gemの検索結果201 - 240 件 / 2800件

  • Ruby on Railsとは? 特徴・魅力・勉強法を開発者が解説 - FLEXY(フレキシー)

    ※本記事は2020年4月に公開された内容です。 松本瞬と申します。 私は主にフリーランスとしてスタートアップのWebサービス開発をお手伝いしています。これまでにPXITA、cakes、クックパッド料理教室、FiNCなど多数のプロジェクトに参画してきました。Ruby on Railsはすでに10年以上利用しています。 Ruby on Railsは個人の力を最大限引き出してくれる少人数開発向けのフレームワークと言えます。 本記事では開発者の思想を軸としてそんなRailsの魅力を語ります。また、初心者の方が押さえておきたいポイントもご紹介しているので、ぜひ参考にしてください。 Ruby on Rails関連の案件をお探しの方はこちらをご覧ください。 Ruby on Rails関連の案件を探す 記事の後半ではFLEXYがお取り扱いするRuby on Rails関連の求人案件もご紹介していますので、

      Ruby on Railsとは? 特徴・魅力・勉強法を開発者が解説 - FLEXY(フレキシー)
    • Rails 7 + Hotwireで実用的なSPAを作ってみた - Studyplus Engineering Blog

      こんにちは、サーバーグループの市川です。モバイルクライアントグループに所属していましたが、バックエンドの開発を担当することが多くなったので、サーバーグループ異動にしました。 最近、Studyplusブックというサービスをリリースしました。Studyplusアプリ内で、200冊以上の参考書が読み放題で使えるサービスです。 このサービスの開発にあたって、社内向けの管理画面を新規に構築したのですが、Rails 7から標準でインストールされるHotwireを利用することにしました。 今回はHotwireを実際に利用する上で、どういったUIを作ればいいか試作しましたので、その話を書きます。 作った画面 書いたソースコード 使った技術 解説 Turboを理解する Turbo Frameでフレーム分割する 追加フォーム (Turbo Frame) 追加処理 (Turbo Stream) 編集フォームと更

        Rails 7 + Hotwireで実用的なSPAを作ってみた - Studyplus Engineering Blog
      • 150万レコードを持つ画像テーブルの移行 - spacelyのブログ

        株式会社スペースリー Railsエンジニアの大津です。 弊社サービスでは物件画像データの管理機能を提供しており、サーバーサイドのフレームワークにはRuby on Railsを、データベース管理にはMySQLを採用しております。これまで物件画像は用途ごとにテーブルを分けて管理していましたが、 アップロードした後に用途を変更できないため画像テーブルを1つに統合しました。 今回は統合する際に実施した旧テーブルから新テーブルへのレコード移行の手順をご紹介します。 統合前後の画像テーブルの構成 まず、統合前の物件画像の管理方法について説明します。 統合前は物件画像テーブルは部屋の写真を管理する内観画像テーブルと建物の写真を管理する外観画像テーブルの2つに分かれていました。 画像ファイルは各テーブルのimageカラムに格納され、Rails GemのCarrierWaveによりAWS S3バケットにアッ

          150万レコードを持つ画像テーブルの移行 - spacelyのブログ
        • ウィンドウを閉じる「×」ボタンはいつから使われるようになったのか?

          Windows 11では、ウィンドウの右上にある「×」アイコンをクリックすると、そのウィンドウを閉じることができます。また、macOS Venturaでもウィンドウ左上の赤い「×」ボタンをクリックするとウィンドウが閉じられます。UIにおける「×」=「ウィンドウを閉じる」というデザインの起源について、SFライターのローレン・ウォーカー氏が解説しています。 X to Close. The origins of the use of [x] in UI… | by Lauren Archer | re:form | Medium https://medium.com/re-form/x-to-close-417936dfc0dc 「『×』をクリックするとウィンドウを閉じる」というデザインはコンピューターにおいてはほぼ標準といっていい概念になっており、さまざまなGUIに採用されています。例えば、W

            ウィンドウを閉じる「×」ボタンはいつから使われるようになったのか?
          • freeeの社内異動制度「異動戦国」のチーム紹介を一挙公開 - freee Developers Hub

            こんにちは、DevBrandingのellyです。 先日ブログでご紹介したfreeeの社内異動制度「異動戦国」、この時期になると社内では毎年、異動希望者を募集するために各チームの熾烈なPR合戦が繰り広げられます。 今回は、その際のSlackや社内WikiでのPR合戦の様子をご紹介します。募集期間中の社内の雰囲気やfreeeの開発組織にはどんな仕事があるのか、どんな魅力があるのかを知ってもらうきっかけになれば嬉しいです。 Slack上で繰り広げられた今年のPR合戦の様子 チーム紹介 SREチーム DBREチーム DXチーム IAM (認証認可基盤開発)チーム サービス基盤チーム 課金基盤チーム ERP基盤チーム データ基盤チーム コアエンジン(外部サービス連携)チーム AIラボチーム 会計チーム LEGO(Public API・アプリストア開発)チーム 人事労務チーム 金融チーム プロジェク

              freeeの社内異動制度「異動戦国」のチーム紹介を一挙公開 - freee Developers Hub
            • 【Ruby版】xUnit Test PatternsのTest Doubleパターン(Mock、Stub、Fake、Dummy等の定義) - give IT a try

              はじめに テストダブル(Test Double)について、わかりやすく解説した技術記事はないかな〜と探していたところ、こちらのブログ記事を見つけました。 goyoki.hatenablog.com とても詳しく解説されていたので、まさに打ってつけだったのですが、ふだん僕はRubyを使っているのでサンプルコードをRubyにしてみたいな〜と思いました。 そこで今回のエントリでは、原著者の id:goyoki さんの許諾をいただいた上で、上記のブログ記事の説明文を維持したまま、サンプルコードだけをRubyに書き直してみました。(goyokiさん、どうもありがとうございます!) ただし、Ruby版のコードにあわせて説明文を改変した箇所もいくつかあります。 それでは以下がRuby版の「xUnit Test PatternsのTest Doubleパターン(Mock、Stub、Fake、Dummy等の

                【Ruby版】xUnit Test PatternsのTest Doubleパターン(Mock、Stub、Fake、Dummy等の定義) - give IT a try
              • 個人gemのCIをほぼ全部Travis CIからGitHub Actionsに移行した - くりにっき

                2日間で30個くらいのリポジトリでGitHub Actionsに移行したのでメモ tl;dr; モチベーション GitHub Actionsを選んだ理由 GitHub ActionsでgemのCIをするための設定 2020/1/4 0:40追記 weekly build 公式のactions/setup-rubyではなくmasa-iwasaki/setup-rbenvを利用 ボツ案:Dockerイメージのrubyを使う masa-iwasaki/setup-rbenvを利用 setup-rbenvを使う場合の注意点 Travis CIのallow_failuresをGitHub Actionsでも実現する GitHub ActionsでRuby 2.3以下をビルドする Gemfile.lockをコミットしないリポジトリでもキャッシュを保存したい GitHub Actionsの不満点 ジョブ

                  個人gemのCIをほぼ全部Travis CIからGitHub Actionsに移行した - くりにっき
                • 僕がRSpecでsubjectを使わない理由 - give IT a try

                  はじめに 僕は折に触れて「RSpecではなるべくsubjectを使わない方がいい」という発言をしています。 Qiitaとか見てるとRSpecのsubjectを愛用している人が多そうな印象なんだけど、僕はほとんど使っていません。「subjectは原則使わない。明らかにメリットがあるときにだけ例外的に使用する」が僕のポリシーです。ほら、RSpecの(元)メンテナさんもそう言ってるし。 https://t.co/Rp5EiIxCVb #Qiita pic.twitter.com/pMlN35ihEG— Junichi Ito (伊藤淳一) (@jnchito) 2019年5月28日 そもそもの話として、RSpecではsubjectは無理に使わない、というのが僕の持論です。なぜなら無理にを使うと、いびつなテストコードができやすいから。基本はsubjectなしで書く。明らかにsubjectが有効なと

                    僕がRSpecでsubjectを使わない理由 - give IT a try
                  • Rubyのテストのややこしい失敗を直した話 - まめめも

                    Ruby の CI 維持業というのはこんな感じという事例紹介。 CIを観察する RubyのCIがときどき次のように失敗していました。 1) Error: TestM17N#test_object_inspect_external: Encoding::CompatibilityError: incompatible character encodings: UTF-8 and UTF-16BE /tmp/ruby/v2/src/trunk-test-random/test/ruby/test_m17n.rb:311:in `encode' /tmp/ruby/v2/src/trunk-test-random/test/ruby/test_m17n.rb:311:in `inspect' /tmp/ruby/v2/src/trunk-test-random/test/ruby/test_m1

                      Rubyのテストのややこしい失敗を直した話 - まめめも
                    • オンラインミーティングが始まったら自動で点灯するオンエアーネオンライト作った - 宇宙行きたい

                      家で仕事するようになったときからずっとオンラインミーティング始まったら自動で点灯するネオンサインみたいなのあったら良いなぁと思ってた。 まぁぼんやり思ってるだけだったんだけど、ちょっとやる気が出たのでガッと組んでみた(確定申告の書類集めとかしてるとそうなるよねー) 雑要件定義 絶対に自動でON/OFF 取り回しのためPCとは直接有線で繋げない ミーティングはZoomだったりGoogle Meetだったりあるのである程度汎用的な方法 ミーティングの自動判別 たまにネットで出てくる記事でよく使われているZoomアプリのプロセス監視するのはGoogle Meetに対応できないので無し。カレンダー監視してミーティングの時間とか考えたけど、精度低いし突発の仕様相談とかに対応できないので無し。 結局仕事のミーティングはすべてカメラONにして行っているのでカメラの監視をすることにした。たまにゲームでDi

                        オンラインミーティングが始まったら自動で点灯するオンエアーネオンライト作った - 宇宙行きたい
                      • 新卒エンジニアとして1年間取り組んだこと - ドワンゴ教育サービス開発者ブログ

                        はじめに 初めまして。2021年4月に新卒で入社いたしました教育事業本部サービス開発部バックエンドセクションの len です。 今回は教育事業本部の新卒メンバーとして join してから1年で取り組んできた研修についてお話しします。 メンターにサポートいただきながら研修を進めて参りました。メンター視点の記事はこちらになります。 新卒エンジニアのメンターとして1年間取り組んだこと 全社エンジニア新入社員研修 入社してすぐ全業種に向けたビジネスマナー研修や事業説明があり半月経ったあたりでエンジニア向けの研修が6月末まで行われました。 この研修では基本的な技術の取得や学んだ技術を使って個人やチームなどでアプリを作成するといった内容でした。 こちらの研修の1つである基礎研修では、N予備校の教材を使い、web に関する基礎的な技術を学びました。 それと同時に読書会もあり、読んだ技術書の内容をN予備校

                          新卒エンジニアとして1年間取り組んだこと - ドワンゴ教育サービス開発者ブログ
                        • RBS基礎文法最速マスター - pockestrap

                          RBSはRuby 3に組み込まれた、Rubyの型情報を記述する言語です。 この記事ではRBSの文法を駆け足で紹介します。 細かい話は飛ばしますが、この記事を読めば大体のケースでRBSを読み書きできるようになると思います。 事前準備 インストール まずは文法の前に、rbs gemをインストールしましょう。 Ruby 3を使っている場合、rbs gemはRuby 3に同梱されているため何もしなくても使えます。 Ruby 3未満を使っている場合でも、gem install rbsすれば使うことができます。 この記事では、rbs gem v1.0.0を対象に構文を紹介します。 $ gem install rbs Successfully installed rbs-1.0.0 1 gem installed $ rbs --version rbs 1.0.0 動作確認 書いたRBSは、rbsコマン

                            RBS基礎文法最速マスター - pockestrap
                          • Nokogiriが1.11.0からプリコンパイル済みで配布される - koicの日記

                            Nokogiri が 1.11.0 からプリコンパイル済みで配布される (らしい) 。 このエントリを書いている時点での Nokogiri のプレリリースバージョンは 1.11.0.rc3 なので、大きな問題がなければ近日リリースの Nokogiri からという少し先取りの話になる。 おや?となったツイートは以下。 On a more serious note, we're REALLY close to shipping precompiled native gems.https://t.co/tKcuym2UqQ— mike dalessio (@flavorjones) 2020年10月8日 後述するイシューに詳しくは記載されていますが、Linux だけではなく macOS にも対応しているらしい。 早速手元の macOS で見てみることにする。 % time gem install

                              Nokogiriが1.11.0からプリコンパイル済みで配布される - koicの日記
                            • RubyのWebAssembly/WASIへの移植が実現、プレリリース版のバイナリ公開。RubyGemsにも対応

                              RubyのWebAssembly/WASIへの移植が実現、プレリリース版のバイナリ公開。RubyGemsにも対応 Ruby言語のインタプリタをWebAssemblyランタイムで実行できるようにする移植作業が実現しました。WebAssembly版Rubyのバイナリファイルがプレリリース版として公開され、実際に試すことができます(ruby/ruby.wasm)。 RubyのWebAssemblyへの移植作業が始まったことは、1月に公開した記事「RubyがWebAssemblyのWASI対応へ前進。ブラウザでもサーバでもエッジでもどこでもWebAssembly版Rubyが動くように」で紹介しましたが、この移植作業が早くも完了したことが、移植を行ったkatei (Yuta Saito)氏が公開したドキュメント「An Update on WebAssembly/WASI Support in Rub

                                RubyのWebAssembly/WASIへの移植が実現、プレリリース版のバイナリ公開。RubyGemsにも対応
                              • 予約の取れない名店「餃子坊 豚八戒」の餃子はどうしてこんなにうまいのか - メシ通 | ホットペッパーグルメ

                                餃子好きで知らない人はいないと言われる名店 ついに阿佐ヶ谷のあのお店に行くことができました。 餃子好きの間で知らない人はいないと言われる餃子の名店「餃子坊 豚八戒」です。 某権威あるグルメガイドブックに掲載されたり、各メディアでも絶賛されたりするなどして数週間後まで予約でいっぱいのため、予約の困難さでも知られているお店です。 阿佐ヶ谷駅西口から細い道を荻窪方面に徒歩で2分ほどのところにある「いちょう小路」に……あ、ありました! 豚八戒と書いて、「チョハッカイ」と読む。そう、ここがあの名店です。 香山さん:いらっしゃいませ! おお、店長の香山謙吾さんです。こんな有名店のオーナーなのに、とても物腰が柔らかくて気取りのない素敵なお方です。 陳さん:よろくお願いします! 調理を担当されているのは香山さんの妻の陳培霞(ちんばいか)さん。中国のハルビンのご出身です。シャキッとしてやり手な感じが素敵です

                                  予約の取れない名店「餃子坊 豚八戒」の餃子はどうしてこんなにうまいのか - メシ通 | ホットペッパーグルメ
                                • Ruby 3.0.0 Preview 1 Released

                                  Posted by naruse on 25 Sep 2020 We are pleased to announce the release of Ruby 3.0.0-preview1. It introduces a number of new features and performance improvements. RBS RBS is a language to describe the types of Ruby programs. Type checkers including type-profiler and other tools supporting RBS will understand Ruby programs much better with RBS definitions. You can write down the definition of clas

                                  • SmartHRのマルチアプリケーションに分散した従業員データを集約する - SmartHR Tech Blog

                                    こんにちは、プログラマーのkinoppydです。最近はSmartHR内でのプロダクトを横断して開発を行うプロダクト基盤チームというところで仕事をしています。 tech.smarthr.jp GraphQL集めるマンの概念図 分散したプロダクトの課題 SmartHRは、祖業である労務管理と従業員情報を集約している「基本機能」と呼ばれる巨大なアプリケーションと、その「基本機能」にある従業員情報を使い文書配布、年末調整、タレントマネジメントなどを行う小さなアプリケーション群によってサービスが提供されています。各アプリケーションは完全に独立したリポジトリとデータベースを持っており、「基本機能」とのデータのやり取りには公開・非公開のREST APIを利用しています。 SmartHRのプロダクト間の構成概略図 APIで繋がれた基本機能とサービスの世界観には、一つ問題点があります。それは、複数のサービス

                                      SmartHRのマルチアプリケーションに分散した従業員データを集約する - SmartHR Tech Blog
                                    • 特許庁主催のAIコンペで1位、ヤフーの画像検索技術を使った優勝解法紹介

                                      ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは。テクノロジーグループ サイエンス統括本部で画像認識領域の技術開発や応用を担当している土井です。 ヤフーは、特許庁が初めて開催した「AI×商標 イメージサーチコンペティション」において、第1位を獲得しました。(プレスリリース) 本記事では、社内の画像検索に関わる有志で参加した、「AIx商標イメージサーチコンペティション」(特許庁主催、Nishika株式会社開催/以降、本コンペまたはコンペとする)の概要と弊チームの優勝解法について紹介します。 目次 コンペの概要 コンペの結果 基本的なアプローチ(類似画像検索について) ソリューション概要 データセットの正解ラベルの修正 画像をグループ化し同一グループの画像を正解画像とする

                                        特許庁主催のAIコンペで1位、ヤフーの画像検索技術を使った優勝解法紹介
                                      • AWS Lambda でも Rails で Web 開発 - エムスリーテックブログ

                                        本日はコンシューマチームのブログリレー2日目です。 エムスリーエンジニアリングG コンシューマチームの松原(@ma2ge)です。 今回は以前筆者が M3 Tech Talk で話した AWS Lambda での Web アプリ開発に Rails を使う内容について、 若干内容を変えつつ Tech Blog の方でも紹介をしたいと思います。 最近使っているキーボードの様子 現在のチームで担当している主要なアプリは Rails で書かれていて、ほとんどがコンテナ化され Amazon ECS(ECS) と Fargate を使って運用されています。 そんな中今年の初めに AWS Lambda(Lambda) に適したプロジェクトが話にあがりました。ただ Rails で Lambda しかも Web アプリとなるとあまり採用事例を耳にしません。 とはいえ使い慣れている Rails をそのまま生かし

                                          AWS Lambda でも Rails で Web 開発 - エムスリーテックブログ
                                        • Ruby with Visual Studio Code

                                          Version 1.92 is now available! Read about the new features and fixes from July. Ruby in Visual Studio Code Ruby is a dynamic, open-source programming language known for its simplicity and productivity. With an expressive and elegant syntax, part of the Ruby philosophy is to make developers happy. It is often used for web development with a range of different frameworks, and for scripting, allowing

                                            Ruby with Visual Studio Code
                                          • RubyのDockerイメージでよく使う環境変数

                                            Ruby向けのDockerイメージで使いがちな環境変数について整理する。 GEM_HOME RubyGemsに対して、どのディレクトリにGemをインストールするかを指定する環境変数。例えば gem install foo を実行すると、この環境変数で指定したディレクトリにfoo gemがインストールされる。 Dockerでありがちな作戦として、/gem のような適当なパスにデータボリュームをマウントしておいて、そこにGemを永続化させておくというのがある。このときGEM_HOMEを /gem に指定しておくと、gem install bundler を実行したときそこにBundlerがインストールされ、更に /gem/bin/bundle も用意される。 BUNDLE_PATH Bundlerに対して、どのディレクトリにGemをインストールするかを指定する環境変数。例えば bundle i

                                              RubyのDockerイメージでよく使う環境変数
                                            • ActionMailerでのエラーハンドリングと、メール配信機能の冗長化 - ANDPAD Tech Blog

                                              バックエンドエンジニアの宮澤です。 弊社のANDPADでは多くのWebサービスと同じようにメールでの通知機能を持っています。 今回はRailsと複数のメール配信サービスを組み合わせて、メール配信機能を冗長化した事例を紹介します。 ANDPADで導入しているメール配信サービス ANDPADでは2つのメール配信サービスを利用しています Mailgun(メイン) Sendgrid(サブ) 通常はMailgunを主系として利用し、SendgridはMailgunでの送信失敗時に備えて待機する構成になっていて、Mailgunで障害が発生した場合でも自動的にSendgird経由でメール配信できるようになっています。 また、サブにSendgridを採用している理由にRFCに準拠しないメールアドレスへの対策もあります。 ANDPADでは個人の携帯キャリアメールで登録しているアカウントも多く、キャリアメール

                                                ActionMailerでのエラーハンドリングと、メール配信機能の冗長化 - ANDPAD Tech Blog
                                              • 最終出社日でした - @watson1978 の日記

                                                今日はReproでの最終出社日。思い返せば 30 歳も過ぎてから Ruby とどう関わっていくかという人生だった。 MacRuby (2010年~) 暇つぶしに Mac OS X のアプリを作ってみようかと思い立った時に出会ったプロジェクトだった。 今のように Swift や clang というコンパイラもなく、 Objective-C 言語というとにかく [] を書きまくらないとならずどうにもなじめなかった。もともと趣味で Ruby はさわっていたのでそれでアプリが作れたら良いのにと思っていたところで、渡りに船的にさわり始めたのがきっかけだった。 私がさわり始めたころはちょっとしたコードを書いてもすぐにクラッシュするような感じで、ちまちま「こういうコードを書くとクラッシュするんだけど何でだろう?」とプロジェクトの issue に書き連ね、気がついたら「こういう風に直すと動くようになるんだ

                                                  最終出社日でした - @watson1978 の日記
                                                • ご意見募集: Rubyに名前空間サポート的なものが欲しいという話 - たごもりすメモ

                                                  LFAを書いたときの話にあるKernel#loadの第2引数で名前空間的なものを作れるんだけど、loadした先のファイルでrequireされてたらダメなんだよね、という話の続き。ダメなんだよねー、で終わってたんだけどRubyKaigi2023で@shioyamaさんのMultiverse Rubyを聞いて、ここに仲間がいた!!! ってなって、さらにそのあとバーで飲みながらやろうやろうって盛り上がったので、なんか色々考えている。 RubyKaigiの話は別途書くとして、いまはとりあえずこっち。 後半に、こんなものが欲しい、という話、および読んだ人の意見が欲しいということが書いてあるので、このあたりに何か思うところがある人はぜひ読んでみてください。どっちかというと、自分以外のRubyユーザがどう考えているのかを、bugsに出す前にまず知りたいなと思っています。 動機 Rubyにはみなさんご存知

                                                    ご意見募集: Rubyに名前空間サポート的なものが欲しいという話 - たごもりすメモ
                                                  • Railsアーキテクチャパターン: In-App Gems (アプリ内gem) パターン

                                                    なんとなくパターン・ランゲージ(パターンカタログ)のスタイルが懐かしくなったので、あのスタイルを思い出しながら書いてみます。 目的 特定のアプリと完全に同期していますが、機能的には独立したライブラリをアプリ内のgemとして提供するものです。 動機 アプリで使いたい機能として、ある程度の独立した機能を実装したい 単独のクラスやモジュールとして実装できるものではなく、複数のクラス等が関連して動く程度の粒度を想定する(ので、個別のファイル単位よりはもう少し大きい粒度になる) 独立した機能とアプリが渾然一体となり、気がつくと境界を侵食したり侵食されたりしてしまうことは避けたい 適用可能性 いくつかのclassやmoduleがアプリケーションに依存せず、独立した機能になっている場合 特定のRailsアプリからしか使われる予定がない(共有する必要・予定がない)場合 一定期間しか利用せず、どこかのタイミ

                                                      Railsアーキテクチャパターン: In-App Gems (アプリ内gem) パターン
                                                    • 「エンジニアDB」というサービスを開発しました!【Next.js / Rails / AWS / Terraform / Docker / GitHub Actions】 - Qiita

                                                      3.インフラ(全体構成)について ここから技術的なことについて話していきます。 まず大前提として、プロジェクトの全体構成は、Happiness Chain の卒業課題の条件に基づいて決めれらていました。これらの条件には以下が含まれます Rails APIモード / Reactで完全SPAのポートフォリオを作る。 本番環境と開発環境にDockerを使う。 本番環境にはECS Fargateを使う。 GitHub Actionsを使ってAWSに自動デプロイする。 Terraformでインフラをコード化する。 なので、これに倣って実装しています。 アーキテクチャの全体像 フロントエンドはVercelにデプロイして、バックエンドはAWSのECSにデプロイしています。 ブランチ運用は、GitHub flowを採用しています。 プルリク時にテストが走り、mainブランチにマージされるとデプロイされる感

                                                        「エンジニアDB」というサービスを開発しました!【Next.js / Rails / AWS / Terraform / Docker / GitHub Actions】 - Qiita
                                                      • 上位組織のデプロイ頻度は1週間に約30回 1日1デプロイだったメドピアが挑んだ頻度改善の取り組み

                                                        多数のヘルステックサービスを企画・開発しているメドピアが、リモートワーク継続中でも事業成長を加速させたプロダクト開発の事例や技術的な知見を紹介する「事業成長を加速させたエンジニアリングのウラ側」。ここで「Deploy Rails apps in 2021」テーマに正徳氏が登壇。まずは過去のレポートをもとにした目指すべきデプロイの頻度と、デプロイ改善のために取り組んだことについて紹介します。 自己紹介 正徳巧氏(以下、正徳):「Deploy Rails apps in 2021」というタイトルで発表します。ちょっと私も緊張しているので、ビールを飲みながら発表させてください。 自己紹介です。正徳と言います。会社に入社して1年半ぐらいで、CTO室のSREという部署に所属しています。SNSなどは@shinsokuというハンドルネームで活動しています。よろしくお願いします。 SREでなにをやっている

                                                          上位組織のデプロイ頻度は1週間に約30回 1日1デプロイだったメドピアが挑んだ頻度改善の取り組み
                                                        • OSS開発に参加する方法 - 2024-09-18 - ククログ

                                                          こんにちは。7月にクリアコードに入社した藤田です。 クリアコードでは「フリーソフトウェアで稼ぐ」という理念をもとに、さまざまな活動がオープンになっており、 OSS開発もその一環です。 私が所属するチームは、Fluentdという拡張性の高いOSSのログ収集ソフトウェアを扱っています。 クリアコードに入社するとともに、新たなOSSに挑戦しております。 そこで、この記事では私なりのOSSに参加する方法についてご紹介したいと思います。 この内容に沿って作業されると、すぐにPull Requestを作成することができるかと思います。 それを足がかりにより大きな課題へ挑戦してみてください。 クリアコードでOSS開発 私が所属しているFluentdチームは、Fluentdの導入支援や運営サポートなどの エンタープライズサポートをベースに、Fluentdをオープンに開発しています。 我々の活動は http

                                                            OSS開発に参加する方法 - 2024-09-18 - ククログ
                                                          • GitHub Appを使ってDependabotが作るpull requestを自動マージさせる - inSmartBank

                                                            こんにちは。皆さんは自身がメンテナンスするソフトウェアが依存するパッケージの更新、いわゆるdependency updateをどのような形で行っていますか? SmartBankが提供するサービスB/43の開発では主にGitHubのDependabot version updates機能を用いて定期的なdependency updateを行っています*1。これは簡単にいえばGitHub repositoryにYAMLファイルを置いておくだけで自動的かつ定期的にversion updateのpull requestを作ってくれる便利なやつです。 便利ではあるのですが、アプリケーション規模やチーム体制によっては日々作成されるpull requestをさばくのに苦労することがあります。本記事ではそのような運用課題を解決するために導入した、GitHub Appを使った自動マージについて解説します。

                                                              GitHub Appを使ってDependabotが作るpull requestを自動マージさせる - inSmartBank
                                                            • rubygems を 1.5 倍に高速化した方法(stackprof --d3-flamegraph の使い方) - まめめも

                                                              タイトルは釣りです。明日 ISUCON 10の予選があると小耳に挟んだので、Ruby で参加する人が絶対に抑えておくべき? Ruby 高速化の tips をひとつ。stackprof --d3-flamegraph のご紹介です。 例題 ちょうど今日、gem install aws-sdk にかかる時間を 37 秒から 24 秒ほどに高速化しました。 変更前: $ time ruby -I lib bin/gem install --no-doc aws-sdk Successfully installed aws-sdk-3.0.1 1 gem installed real 0m37.104s user 0m36.952s sys 0m0.333s 変更後: $ time ruby -I lib bin/gem install --no-doc aws-sdk Successfully

                                                                rubygems を 1.5 倍に高速化した方法(stackprof --d3-flamegraph の使い方) - まめめも
                                                              • Rails + RSpec + OpenAPI3 + Committeeでスキーマ駆動開発を運用するTips - Timee Product Team Blog

                                                                こんにちは、タイミーデリバリー開発チームの宮城です。 今回は弊社のOpenAPI3ベースのスキーマ駆動開発の運用方法を紹介します。 TL;DR 技術スタックは OpenAPI3, Swagger UI, Committee, ActiveModelSerializers Committeeを利用してOpenAPI準拠のRequest Specを行う OpenAPI3のrequiredキーワードに注意する 背景 タイミーデリバリーでは、RailsによるAPIサーバーと、Web管理画面としてVue.jsによるSPA、ユーザー向けiOSアプリとしてSwiftを採用しています。 1つのモノリスなRailsで利用者別にネームスペースを区切り、それぞれエンドポイントを提供しています。 サーバーサイドとクライアントサイドを分離し並行して開発を進めるためにスキーマ駆動開発を導入しました。スキーマ駆動開発の

                                                                  Rails + RSpec + OpenAPI3 + Committeeでスキーマ駆動開発を運用するTips - Timee Product Team Blog
                                                                • anyenv から asdf に移行した - a.out

                                                                  背景 これまで、 Ruby や Python のバージョンを切り替えるために anyenv を使っていた。 しかし anyenv ではいくつか困っていたことがあり、以前から気になっていた asdf というツールに移行することにした。 anyenv で困っていたこと tfenv のような例外に対応できない rbenv などと違って tfenv には init コマンドがない。そのため anyenv init 実行時にエラーが出てしまう anyenv で tfenv をインストールすることはできるが、この点が考慮されていないので自分でなんとかする必要がある anyenvでtfenvを使うときのエラーを抑止する - Qiita tfenv に限らず、今後こういった例外が他にも出てくるかもしれない init スクリプトが遅い 各 env の init コマンドを実行していくので、それなりに時間がか

                                                                    anyenv から asdf に移行した - a.out
                                                                  • スピード優先の開発で溜まった技術的負債の返済計画(サーバーサイド編) - dely Tech Blog

                                                                    こんにちは! dely株式会社サーバーサイドチームの安尾です。 本記事はdely Advent Calendar 2019の5日目の記事になります。 qiita.com adventar.org 昨日は辻さんが「Jupyterもいいけど、SageMath使って可能性もっと伸ばそう!」という記事を書きました。 tech.dely.jp 本日は「スピード優先の開発で溜まった技術的負債の返済計画(サーバーサイド編) 」というタイトルで、今delyのサーバーサイドチームの技術的負債についての考え方から、負債返済のために具体的に行なっていることをご紹介したいと思います。 技術的負債とは 抽象的な言葉なので、組織や人によって微妙に定義が異なるのではないかと思いますが、僕たちのチームでは「未来の開発スピードを下げる原因となるプログラムやアーキテクチャのこと」を総称して技術的負債と呼ぶようにしています。

                                                                      スピード優先の開発で溜まった技術的負債の返済計画(サーバーサイド編) - dely Tech Blog
                                                                    • OpenAPIを使ったRailsスキーマ駆動開発 - ドワンゴ教育サービス開発者ブログ

                                                                      はじめに サービス構成 レポジトリ一覧 サーバー側Railsアプリ クライアント側Railsアプリ 開発の流れ 利用ツール swagger-cli committee-rails 不具合1: ファイルの分割 不具合2: $refとnullableの同時使用 json-schema openapiの記法に合わせた機能拡張 openapi-generator-cli (Ruby client) 不具合1: 中途半端な型チェック 不具合2: oneOf/anyOfに非対応 factory_bot 終わりに We are hiring! はじめに 前回の記事では、OpenAPIで新しいウェブAPIを定義する際に、yamlのままで読みやすいようにファイル構成等を工夫した話をしました。 今回はそのAPIスキーマを使って、Railsでスキーマ駆動開発を実現するにあたって利用しているツール類についてお話し

                                                                        OpenAPIを使ったRailsスキーマ駆動開発 - ドワンゴ教育サービス開発者ブログ
                                                                      • 『マジック:ザ・ギャザリング』の最強カード「ブラック・ロータス」が現在ebayに出品中。入札価格はすでに1億円超え

                                                                        『マジック:ザ・ギャザリング』の最強カードと名高い「ブラック・ロータス」が1月18日(月)にオークションサイトebayへ出品された。執筆時点で入札額は1億円を突破している。 画像は『マジック:ザ・ギャザリング』日本公式ウェブサイトより画像はebayより 「ブラック・ロータス」とは、トレーディングカードゲーム『マジック:ザ・ギャザリング』のカードの1種。カードを場に出したり、能力を使用する際に必要な「マナ」(コスト)を、「ブラック・ロータス」を生贄に捧げることで3つ生成できるという非常に強い能力を持っており、『マジック:ザ・ギャザリング』初期の強力カード9枚である「パワー9」の筆頭格。 【更新 2021/1/19 12:30】 記事初版にて「場に出すだけで」と記載しておりましたが、正しくは「「ブラック・ロータス」を生贄に捧げることで」でした。訂正しお詫び申し上げます。 その強力すぎる能力ゆえ

                                                                          『マジック:ザ・ギャザリング』の最強カード「ブラック・ロータス」が現在ebayに出品中。入札価格はすでに1億円超え
                                                                        • WHATWG Living StandardとHTMLパーサ - Qiita

                                                                          この記事はドワンゴ Advent Calendar 2020 最終日の記事です。年の瀬ですね。 はじめに 本記事は、WHATWG Living Standardに準拠することを目的としたHTMLパーサである「gammo」の紹介を目的としている。gammoが実現していることを詳細に伝えるため、単なるgemの紹介に留まらず、HTMLの歴史や昨今のHTMLを取り巻く状況を簡単に解説し、WHATWG Living StandardにおけるHTML文書の解析アルゴリズムについて、実例と共に紹介する。 本記事で紹介するgammoの開発に取り掛かった理由は、主に以下の二点が挙げられる。 WHATWG Living Standardに準拠したHTMLパーサをRubyGemsの中から見つけられなかったため。 現在HTMLパーサの機能を持つライブラリの中で、最も利用されていると考えられるNokogiriと比較

                                                                            WHATWG Living StandardとHTMLパーサ - Qiita
                                                                          • 大規模分散DBのCloud Spannerが、RailsのActive Recordに対応。スケーラブルで高可用なRubyアプリケーションの開発が容易に

                                                                            Googleは、同社がクラウドサービスとして提供しているCloud SpannerをRailsのActive Recordに対応させるアダプタ「activerecord-spanner-adapter」が正式版となったことを発表しました。 Cloud Spannerは、Googleの多数のデータセンターにまたがる地球規模で大規模分散処理を行うリレーショナルデータベースです。事実上無制限とされる高いスケーラビリティと99.999%の高可用性を備えつつ、強い一貫性とトランザクション処理、SQLによるクエリなどを実装しています。 メルカリの決済サービスであるメルペイがバックエンドデータベースにCloud Spannerを採用し、数百万ユーザーの処理を行っているとされています。 このCloud SpannerをRailsのActive Recordのバックエンドデータベースとして使えるようにするア

                                                                              大規模分散DBのCloud Spannerが、RailsのActive Recordに対応。スケーラブルで高可用なRubyアプリケーションの開発が容易に
                                                                            • なるほどTCPソケット

                                                                              TCP Ruby Jesse Storimer 2024-09-23 i ii API iii Web HTTP API REST JSON API API TCP API Twitter API API TCP JSON XML API 2 API C API iv Web Unix Unix Ruby Ruby Ruby Ruby 1.9 3 1 2 Hello, World v 3 API API API 1983 BSD 4.2 TCP API API API API API 1983 API API 1 API API 2 API API C C API Ruby API vi Ruby API 1 API UDP TCP API API TCP HTTP FTP TCP/IP Vol.1 *1 *1 http://www.amazon.co.jp/dp/4894713209/

                                                                              • Docker ComposeとDipで開発用コンテナを再利用可能にする(翻訳)|TechRacho by BPS株式会社

                                                                                概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Reusable development containers with Docker Compose and Dip — Martian Chronicles, Evil Martians’ team blog 原文公開日: 2021-04-21 著者: Vladimir Dementyev サイト: Evil Martians -- ニューヨークやロシアを中心に拠点を構えるRuby on Rails開発会社です。良質のブログ記事を多数公開し、多くのgemのスポンサーでもあります。 はじめに: Docker Composeファイルを管理しながら、最小限の労力で複数のDocker環境でコードを実行・テストする方法をご紹介します。YAML設定をいじくる時間を削減し、シンプルなコマンドを1つ実行するだけで任意のホストフォルダから指定の

                                                                                  Docker ComposeとDipで開発用コンテナを再利用可能にする(翻訳)|TechRacho by BPS株式会社
                                                                                • アプリ内の日付変更線をズラす系の実装 - id:onk のはてなブログ

                                                                                  例えば日記を書くときに、午前 2 時に書いたものは前日分としたいことがある。またユーザがメチャクチャ多いサービスでは、0:00 を回ったら翌日のログインボーナスを配る、としていると、まだユーザが多い時間にサーバの処理が要求されて大変なので、28:00 を日付変更線にしたいことがある。 こういうときには module AppTime def self.beginning_of_day(time) t = time.change(hour: 4) t <= time ? t : t - 1.day end end を作って、 AppTime.beginning_of_day(Time.current) を使うと「アプリ内の日付変更線では何日なのか」が取れる。 # 02:00 は前日扱い time = Time.zone.parse("2021-01-31 02:00") AppTime.beg

                                                                                    アプリ内の日付変更線をズラす系の実装 - id:onk のはてなブログ