Linkers Tech Blog

リンカーズ株式会社の開発者ブログです。

全文検索を日本語向けにチューニングする

はじめに 情報システム部の横山です。弊社のビジネスマッチングサービス・LFBで、全文検索のチューニングを行ったので、今回はその時の知見を共有します。 読者の想定レベル Elasticsearch(以下ES)の設定方法についてある程度わかる人を想定しています。も…

Apache Solr の撤廃と henkei の導入

はじめに こんにちは。情報システム部の桝冨です。 Linkers Sourcing / Marketing (LS/LM) では日頃からさまざまな内部改善を行なっています。 その中で、Apache Solr の撤廃と henkei の導入を担当させていただきましたので、共有したいと思います。 Apache…

webpackのSplitChunksでビルドを3倍速に

はじめに こんにちは、情報システム部の呉です。 あっという間に、2023年の終わりが近づいてきました。今年はLinkers Sourcing / Marketing (LS/LM)ではシステムの様々な内部改善を行いました。 その一環としてwebpackのパフォーマンスを改善しましたので、…

LS/LM がRuby 2.7 -> 3.2 にアップグレードするまでの軌跡

こんにちは、情報システム部の大河原です。 徐々に暑さが増してきて、夏本番が近づいているのを肌で感じます。先日、お気に入りの夏限定ドリンク1をコンビニで初めて見かけて、テンションが上がりました。 さて、遡って春先の話になりますが、Linkers Sourci…

RubyKaigi 2023に参加しました

こんにちは。情報システム部の呉です。 5.11~5.13の3日間、松本市でRubyKaigi2023が開催されました。参加の皆様、良い時間を過ごされましたでしょうか? リンカーズでは、RubyKaigi2023にGold Sponsorとして協賛させていただき、私を含めて5名のエンジニアが…

【RubyKaigi 2023】リンカーズはGold Sponsorとして協賛します

みなさんこんにちは、情報システム部の大河原です。GWはいかがお過ごしでしたでしょうか。 GWが明けまして、RubyKaigi 2023がいよいよ今週末に迫りました。リンカーズは、当イベントにGold Sponsorとして協賛いたします。 rubykaigi.org

RubyKaigi 2022に初参加しました

こんにちは、Nathan Willsonです。リンカーズのバックエンドエンジニアとしてRubyで開発しています。 リンカーズ株式会社は2022年のPlatinum SponsorとしてRubyKaigiに参加しました!私はRubyKaigiに初参加し、様々な経験をしましたのでこちらで共有したいと…

My RubyKaigi 2022 Experience

Hi there, I'm Nathan. I'm currently working as a backend lead developer at Linkers. Our team at Linkers attended RubyKaigi 2022 as a Platinum Sponsor! It was my first time attending RubyKaigi and I wanted to share my experience. RubyKaigi …

Rubyのパターンマッチで再帰関数

はじめに こんにちは、情報システム部サービス開発チームの金です。 Rubyのパターンマッチ機能、皆さんは使っていますか? Ruby2.7の実験的(experimental)新機能として発表されて久しいですが、Ruby3.0では一部についてexperimentalの警告が出なくなり、その…

Elasticsearchの日本語対応 (with Rails) と学んだこと 💡 [ 日本語版 ]

導入 情報システム部サービス開発チームのNathanです。この記事ではElasticsearchについて学んだことをご紹介します。横山さん、翻訳をしていただきありがとうこざいました。 The English version can be found here. 目的 Elasticsearchを設定して使用する…

Elasticsearch for Japanese (with Rails): What we learned 💡 [ 英語版 ]

Introduction Hi there, this is Nathan from Linker's developers team. Today I'll be writing about the things we learned when implementing Elasticsearch on a Japanese database. 日本語版はこちらです Purpose There are a countless guides for se…

【Elasticsearch】Validation Failed: 1: this action would add [10] total shards, but this cluster currently has [1992]/[2000] maximum shards open

はじめに 情報システム部の横山です。今回はElasticsearchを利用した機能を本番リリースする直前に発生した、表題のエラーについてご紹介します。このエラーが出るのは一部のアプリケーションだけだとは思いますが、同じエラーが出た人の一助となれば幸いで…

【MySQL】短縮URLテーブルのレコード大量削除と断片化解消

こんにちは、情報システム部サービス開発チームの石川です。 長年システムを稼働していると、いつの間にかテーブルに大量のデータが溜まってしまうこともあります。 はじめから溜まりすぎないように設計できればベストですが、溜まってしまったものは仕方な…

【MySQL】INSERT ... ON DUPLICATE KEY UPDATE の使い方と注意点

はじめに 情報システム部の横山です。 MySQLでバルクアップデートをしたいことはままあります。そこで使用するのがこのINSERT ... ON DUPLICATE KEY UPDATEなのですが、Web上では「どうやってアップデート元のレコードが決定されるのか」まで触れた使い方の…

ActionCableの基本的な挙動と、ログの意味を理解する

はじめに 情報システム部の横山です。 ActionCable(Railsで扱えるWebsocketフレームワーク)のログを出力すると、見慣れない言葉が出てきます。subscribeやbroadcastやtransmitとは何を指すのだろう……と疑問を抱いたのでこの記事を書きました。 検証バージ…

「Railsバージョンを倍にしたサービスのそれまでとそれから」をKaigi on Rails 2021で発表しました #kaigionrails

こんにちは、大河原です。情報システム部サービス開発チームにて、Linkers.net の開発チームリーダーをしています。 このたび、私は10/22金-23土に開催されたKaigi on Rails 2021 にて、「Railsバージョンを倍にしたサービスのそれまでとそれから」というタ…

新入りエンジニアの入社後最初の一週間、そしてリモートワークレポート

はじめに、新型コロナウイルス感染症に罹患された皆さまおよび関係者の皆さまに、心よりお見舞い申し上げます。 一日も早い収束と、皆さまのご健康を心からお祈り申し上げます。 現在弊社では、感染拡大防止の観点から自宅勤務が推奨されています。 この記事…

S3互換ストレージMinIOの開発環境(Rails)への導入

はじめに 情報システム部の横山です。 この記事は、Ruby on Railsの既存プロジェクトにMinIOを実際に環境に導入し、その際つまずいたところを記録した記事です。 MinIO導入の経緯から、ローカルの開発環境にコンテナとして導入して、最後はCIが緑になって開…

Meetup for Rails engineers -メドピア×リンカーズ×Classi開発事例- 開催レポート

リンカーズは去る10月30日に行われた "Meetup for Rails engineers -メドピア×リンカーズ×Classi開発事例-" を、メドピア社・Classi社と共に開催しました。弊社からは3名が登壇しましたので、その模様を紹介します。 (書き手: リンカーズ 鈴木竜太) 礒飛拓也…

JavaScriptでのイベントキャンセルの落とし穴

Railsで開発していると、デフォルトのSubmitイベントを上書きしたい時に遭遇することがあると思います。 そういった場合は、Clickイベントなどを利用して、デフォルトのSubmitイベントはキャンセルし、上書きした処理を実行することになります。 しかし、イ…

Slack始めました MattermostからSlackへの移行手順

リンカーズでは最近コミュニケーションツールを Mattermost から Slack に切り替えました。当ブログでは2回に分けてSlack移行についてお伝えしたいと思います。まず今回はMattermostからデータを抽出し、Slackにインポートする手順です。 概要 移行できなか…

リモートオフィスでの仕事を紹介! 2019年3月Matz会ダイジェスト

こんにちは、リンカーズ情報システム部の鈴木です。今回は弊社に残るMatz会アーカイブから2019年3月開催分をお送りします。 似た企業名を探す アルゴリズムの紹介 パフォーマンス計測 Ruby本体での採用例 リモート勤務3年目 東海オフィスの環境 メリット・デ…

イベントトラッキング用gem ahoyで、deviseの複数のユーザモデルを取り扱う

ahoy導入の経緯と課題 ahoyはRailsアプリケーションにアナリティクスツールを組み込むためのgemで、Railsアプリケーション上でユーザ行動ログを取得し、保存することができます。データの保存先としてActiveRecordを選択することができるので、最小構成のイ…

「ポストMatz」はいつ、誰が? 2019年2月Matz会ダイジェスト

こんにちは、情報システム部の鈴木です。 弊社では技術顧問: まつもとゆきひろ氏を招いて定期的に勉強会(通称: Matz会)を行なっています。お待たせしました、今回は今年2月開催分のレポートです。 今回のテーマはこちらです。詳しいレポートは「続きを読む」…

リンカーズは「RubyKaigi 2019」にスポンサーとして参加します

おはようございます。情報システム部の鈴木です。 いよいよ今月18日から RubyKaigi 2019 が福岡にて開催されます。リンカーズは Platinum スポンサーとして RubyKaigi 2019 を応援しています!2017年広島開催から、3年連続3回目の協賛になります。 ブース出…

リンカーズは「Rails Developers Meetup 2019」にスポンサーとして参加します

みなさんこんにちは、情報システム部の大河原です。 リンカーズは、3/22金から23土に日本オラクル社様にて開催されるRails Developers Meetup 2019 に1日目のケータリングスポンサーとして参加します! railsdm.github.io RailsDMは2017年より継続的に開催さ…

「コーディング不要の時代」は来るか 〜 2019年1月度Matz会レポート

こんにちは、情報システム部エンジニアの大河原です! 弊社技術顧問:まつもとゆきひろ氏との勉強会(通称:Matz会)について、11月度、12月度と記事を書いてきました。 linkers.hatenablog.com linkers.hatenablog.com 今回は1月度のMatz会についてレポート…

開発チームにスクラムを導入した話

はじめに リンカーズ株式会社エンジニアの鈴木です。2018年6月からリンカーズで勤務しております。今回は当プロジェクトのタスク管理について、自分が取り組んできたことを紹介します。 Linkers for Bank について 私は入社から一貫して「Linkers for Bank」…

Railsで並列化が効くのはどんなとき? 〜 12月度Matz会レポート

こんにちは、情報システム部・エンジニアの大河原です! このブログ最初の記事で、技術顧問:まつもとゆきひろ氏との勉強会(通称:Matz会)について書きました。 linkers.hatenablog.com 今回は、12月度のMatz会についてレポートします。 「Matz会てなに?…

リモート勤務実証実験レポート@2019年1月

こんにちは。デザイナーのハラダです。 今をときめくエンジニア集団はみんなリモートワークをしているって本当ですか? 私も相談して、リモート勤務を試験的にさせてもらいました。 席に居ないときはみがわりにんぎょうを設置しています リモート勤務推進派…