こんにちは、2022年4月にフォースタートアップスにジョインしたエンジニアの八巻(@hachimaki37)です。入社から早半年間が経ちました。引き続き、社内向けプロダクト「タレントエージェンシー支援システム(SFA/CRM)」のシステム開発を担当しております。 はじめに 百聞は一見にしかず!ということで、まずはどんなモノか動画をご覧ください(34秒) ご視聴ありがとうございました。今回のTech Blogは 、「Figma APIを使用し、svg形式のアイコンを/figma/images配下にインポートするrake taskを実装してみる」です。開発の背景や目的、苦労話などを交えながら執筆し…
実例 クォートで囲まないと NG。 $ bundle exec rails foo_task:barbar[hoge,fuga] zsh: no matches found: foo_task:barbar[hoge,fuga] クォートで囲むと OK。 $ bundle exec rails "foo_task:barbar[hoge,fuga]" (正常処理)
今回は記事投稿アプリにバッチ処理の実装をしてみます。 最終的にはこんなことをやりたいです。 やりたいこと 記事の状態が「下書き」「公開」「公開待ち」と3種類あります。 例えば記事の公開日を1日後にすると記事の状態は「公開待ち」になります。 時間が経って公開日を過ぎたら自動で記事が公開されるようにしたいです。 必要なもの ・Rakeタスク ・cron ・whenever これらを使って自動で記事が公開される仕組みを作っていきます。 具体的に言うと1時間毎に記事の公開日時が現在時刻を過ぎているか判定し、過ぎていれば記事の状態を「公開」に変更します。 このように一定の間隔で処理を行うことをバッチ処理…
RNIアドベントカレンダー 5日目の記事です。 リサーチ・アンド・イノベーションの横山です。 今年もアドベントカレンダーの季節になりました。えっ嘘もう年末? 自己紹介 ずっと流しのエンジニア(死語?)をしておりましたが、RNIにお世話になっていつの間にか6年くらい経つみたいです。 ここ数年ですっかりリモートワーク仙人のようになってしまいました。 作業環境はアドベントカレンダー最終日のデスクツアーで紹介してもらう予定なので楽しみにしていて下さい。 graphql 皆さんgraphqlしてますか? RNIでは10年ほど前からRuby on Railsをバックエンドとして利用しています。 そして今を…
こんにちは、プレックスの石塚です。この記事は、 PLEX Advent Calendar 2024の20日目の記事です。 プレックスではBIツールとして2年ほど前からRedashを使用しています。今回の記事ではRedashの簡単な紹介とオンプレで運用する上でのTipsを8つ紹介します。 以前はMetabaseというBIツールを使用していたのですが、データ活用が思ったより進まず、Redashに移行する流れとなりました。このあたりの話もいずれ機会があればブログにまとめたいと思います。 Redashとは? オンプレRedashの運用Tips8選 1. パスワードログインを無効にする 2. グループを…
※この記事は、2024 Speee Advent Calendar8日目の記事です。 昨日の記事はこちら tech.speee.jp はじめに こんにちは。リフォームDX事業部で開発を担当している佐藤です。Speeeには5年在籍していて、現在はリフォームDX事業部というところでプロダクト作りに関わらせてもらっています。 この度、新しいメンバーと共にRails開発のプロジェクトを立ち上げるにあたって、最速でチームの認識を統一していくためのガイドラインを作りました。よく言語化できたので、少し加工した内容を公開しようと思います。 私自身、エンジニア歴は10年以上で、Railsも10年くらいやっていま…
はじめに これは フィヨルドブートキャンプ Part 1 Advent Calendar 2024 の8日目の記事です。 昨日の記事は、kyokucho1989さんの時間とたたかうフィヨルドブートキャンプでした! この記事は何? この記事ではGithubActionsを利用した定期実行処理を行う方法を、手動テストも含めて解説していきます。 GithubActions自体の説明よりも、実装方法(workflowの書き方)に重点を置いた記事になりますのでご了承ください😅 GithubActionsとは? とはいえ、GithubActionsを全く知らない人が読んでも「なんだこれ?」になってしまうと…
はじめに こんにちは。姓は#LR_parser_gangs、名はydahです。最近は子が「となりのトトロ」にハマっており、毎日「となりのトトロ」がリビングで流れています。 まったく飽きないのか、毎日のように「となりのトトロ観る〜?(意訳:となりのトトロが観たいのでリモコンを操作して欲しい)」と言い続け1か月が経とうとしています。 これは ANDPAD Advent Calendar 2024 3日目の記事です。 今回はRubyKaigi 2024やKaigi on Rails 2024で秘蔵のesaとして配布した、RuboCopのカスタムCop作成のための資料を公開します。 カスタムCopの作…
こんにちは。 メディアサービス開発部 Webアプリケーション開発課のフサギコ(髙﨑)、シゲタ、今永です。 普段はニコニコ漫画などのWebサービスのバックエンドをRailsを使って開発しています。 本記事では、2024年10月の25日から26日にかけて開催された、Kaigi on Rails 2024に参加したことについてお話します。 また、本記事は各セクションを複数人で同時並行に執筆するモブブロギングによって書いています。 Kaigi on Railsとは Kaigi on Railsは、主にRuby on Railsを使ってWebサービスを開発している開発者を対象とした技術カンファレンスです…
みなさんこんにちは〜お久しぶりです! (2024年はアウトプットを増やすと言っていたのはなんだったのか…) 先日、Kaigi on Railsに参加したので、感想など書いていこうと思います。 Kaigi on Rails Day1 基調講演 Rails Way or the highway Rails wayに沿って開発していきましょう。さもなくば怪獣が生まれてしまう…というお話が印象に残りました。 Railsそのものについてもっと勉強しよう!という気持ちにさせてくれた講演でした。 Railsの仕組みを理解してモデルを上手に育てる - モデルを見つける、モデルを分割する良いタイミング - モデ…
ペイトナーファクタリング事業部でEMをやっている脇田(@shimpeee_)です。 Kaigi on Rails2024参加レポです。 kaigionrails.org 技術カンファレンスへの参加は、RubyKaigiを除くと今回が初めてでした。RubyKaigiのセッションは自分にとってはなかなか理解の難しい次元の話をされることが多いですが、Kaigi on Railsは明日から現場で使える知見がたくさん得られ、実践的な学びの多い二日間でした。 技術カンファレンスに参加し得られるメリットは、対象テーマについての知識獲得につながるのはもちろん、その周辺領域の体系的な知識、歴史や思想まで知れるこ…
こんにちは、かたいなかです。 最近、転職会議のあるサーバで発生していたメモリリークについて調査する機会がありました。 今回の記事ではメモリリークをどのように調査したか等をまとめます。 ⚠️:2024/10/21追記 当初、デフォルトですべてのrakeタスクに対しての計装が有効と記載していました。しかし、実際にそのような挙動をするのはdd-trace-rbがv1.3.0より前のバージョンの場合のようです。それ以降のバージョンでは計装するrakeタスクを明示的に指定する必要があるため、デフォルト値に起因する設定ミスが起きにくくなっているようです。 はてなブックマークのコメントで教えていただいた、部…
こんにちは!TECH Street編集部です! 2024年6月14日(金)に開催した、 「Ruby勉強会~各社の取り組みや課題から学ぶ会~」のイベントレポートをお届けします。今回は4社のエンジニアが集まり各社のRubyに関する事例や知見を発表しましたのでその様子をレポートいたします。 登壇者はこちらの方々! 中野伸吾さん / 株式会社Asobica廣江 亮佑さん / 株式会社タイミー西尾 拓也(にっく)さん / オシロ株式会社栗山 友樹さん / 株式会社カカクコム 早速、内容を紹介いたします! ErrorBoundaryを導入して 画面全体がエラーになることを防ぐ 導入に至った経緯 Error…
こんにちは。サーバーサイドグループの五十嵐です。 最近のマイブームはキャンプギア集めで日々キャンプ動画を漁っています。 今年は登山もやってみたいなと思っているのですが、在宅ワークでほぼ動かない生活をしているので足腰を動かすために毎日ウォーキングするように心がけています。 思い立っては運動し、続けようと頑張っては三日坊主になってを繰り返しています。 はじめに 機能開発が進んでいく中で名前が実態に合わなくなってくることはよくあります。 メソッド名やカラム名などは影響範囲が少なく割と気軽に変更できるため修正することで対応できます。 しかしテーブル名になってくるとかなり大変です。 モデル名と関連のke…
2024/10/10分のコミットです。 CHANGELOGにのったコミットは以下の通りです。 activesupport/CHANGELOG.md Don't execute i18n watcher on boot. It shouldn't catch any file changes initially, and unnecessarily slows down boot of applications with lots of translations. Fix an omission in the recursive CTE documentation activerecord/li…
こんにちは!サーバーサイドエンジニアのkurisuです。 2024年06月に、B/43あとばらいチャージの裏側でサービス提供していただいている事業者の移行を行いました。その際、返済データのリコンサイルバッチの設計と実装を担当しました。 外部サービスとのデータ連携における不整合は、多くのシステムで避けられない問題です。 本記事では、B/43のあとばらいチャージ機能での事例をもとに、リコンサイルの重要性と実装時の検討ポイントをご紹介します。 リコンサイルとは 外部サービス連携における課題と不整合の要因 1. 自社から外部サービスへの通信エラー 2. Webhook通知の不達や遅延 外部サービスにお…
こんにちは。スマートバンクのサーバーサイドエンジニアをやっておりますid:moznionです。 すっかり秋めいてきましたね。秋といえばMySQL*1、ということで今回は先日解消した「MySQLのロックに起因するブロックタイムアウト」のトラブルシューティングついて記していきたいと思います。 事の発端 ある時を境にSentryに ActiveRecord::LockWaitTimeout というエラーがしばしば報告されるようになっていました。 SentryにActiveRecord::LockWaitTimeoutが上がってきている様子 Mysql2::Error::TimeoutError: L…
はじめに 株式会社スペースリーのWebエンジニアの小澤です。弊社のプロダクトの中で、私は主に物件管理サービスを開発しており、物件一覧の検索基盤をAlgoliaからElasticsearchにリプレイスしました。このサービスはRuby on Railsで開発しており、本稿ではElasticsearchに関わるGemとしてSearchkickを選択した理由を説明します。 Searchkickとは Searchkickは、RailsとElasticsearchまたはOpensearchを用いた検索機能の実装をサポートするGemです。Searchkickを使うと、複雑な検索クエリの組み立てを簡易化し、…