Linkers Tech Blog

https://linkers.hatenablog.com/

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

フィード

記事のアイキャッチ画像
【RubyKaigi 2024】リンカーズはGold Sponsorとして協賛します
Linkers Tech Blog
みなさんこんにちは、イノベーション推進事業本部・開発チームの大河原です。 GWが終わり、RubyKaigi 2024はいよいよ来週です。リンカーズでは、Gold Sponsorとして協賛いたします。 記事の最後でノベルティを紹介しますので、ぜひ最後までお読みくださいね。 rubykaigi.org
1日前
記事のアイキャッチ画像
全文検索を日本語向けにチューニングする
Linkers Tech Blog
はじめに 情報システム部の横山です。弊社のビジネスマッチングサービス・LFBで、全文検索のチューニングを行ったので、今回はその時の知見を共有します。 読者の想定レベル Elasticsearch(以下ES)の設定方法についてある程度わかる人を想定しています。もし、Elasticsearchの日本語対応のチューニングを行う必要があるけれども、Elasticsearchのことが何も分からないという方は、先にanalyzerの仕組み等を学ぶ必要があります。 analyzerはchar filterとtokenizerとtoken filterで構成されることを知っている indexへのmapping…
3ヶ月前
記事のアイキャッチ画像
Apache Solr の撤廃と henkei の導入
Linkers Tech Blog
はじめに こんにちは。情報システム部の桝冨です。 Linkers Sourcing / Marketing (LS/LM) では日頃からさまざまな内部改善を行なっています。 その中で、Apache Solr の撤廃と henkei の導入を担当させていただきましたので、共有したいと思います。 Apache Solr を撤廃したい LS/LM では過去、全文検索エンジンとして Apache Solr が利用されていました。 現在は Elasticsearch を利用しているため、全文検索用途ではこちらに移行済みです。 一方、文書ファイル(Word、PDF)からテキストやメタ情報を抽出する用途でも…
4ヶ月前
記事のアイキャッチ画像
webpackのSplitChunksでビルドを3倍速に
Linkers Tech Blog
はじめに こんにちは、情報システム部の呉です。 あっという間に、2023年の終わりが近づいてきました。今年はLinkers Sourcing / Marketing (LS/LM)ではシステムの様々な内部改善を行いました。 その一環としてwebpackのパフォーマンスを改善しましたので、今回は共有させて頂きたいと思います。 問題の発覚 きっかけは今年行ったCoffeeScriptの撤廃作業でした。撤廃作業はあくまで内部改善なので、並行している他の開発タスクと競合しないように、ファイルもしくは機能毎に分割し、サイドミッションの形で段階的に進めていました。 作業はほぼ問題なくスムーズにできていまし…
5ヶ月前
記事のアイキャッチ画像
LS/LM がRuby 2.7 -> 3.2 にアップグレードするまでの軌跡
Linkers Tech Blog
こんにちは、情報システム部の大河原です。 徐々に暑さが増してきて、夏本番が近づいているのを肌で感じます。先日、お気に入りの夏限定ドリンク1をコンビニで初めて見かけて、テンションが上がりました。 さて、遡って春先の話になりますが、Linkers Sourcing / Marketing(LS/LM)では3月にRubyバージョンのアップグレードを行いました。 これまで2.7.2だったのを3.2.1に上げたため、多数の非互換の変更を含む大幅なジャンプアップとなりました。 Ruby 2.7は3月末にサポート終了済み LS/LMは3月中にアップグレードを完了させたためなんとか間に合いましたが、Ruby …
10ヶ月前
記事のアイキャッチ画像
RubyKaigi 2023に参加しました
Linkers Tech Blog
こんにちは。情報システム部の呉です。 5.11~5.13の3日間、松本市でRubyKaigi2023が開催されました。参加の皆様、良い時間を過ごされましたでしょうか? リンカーズでは、RubyKaigi2023にGold Sponsorとして協賛させていただき、私を含めて5名のエンジニアが現地参加しました(リモート参加のエンジニアも1人います)。とても楽しい体験でした。 この記事では、自分が印象に残った発表と、全体的の感想を共有させていただきたいと思います。 会場:まつもと市民文化会館(同僚から写真をもらいました) 自己紹介 リンカーズ株式会社情報システム部の呉澤冉(Go Takuzen)と申…
1年前
記事のアイキャッチ画像
【RubyKaigi 2023】リンカーズはGold Sponsorとして協賛します
Linkers Tech Blog
みなさんこんにちは、情報システム部の大河原です。GWはいかがお過ごしでしたでしょうか。 GWが明けまして、RubyKaigi 2023がいよいよ今週末に迫りました。リンカーズは、当イベントにGold Sponsorとして協賛いたします。 rubykaigi.org
1年前
記事のアイキャッチ画像
RubyKaigi 2022に初参加しました
Linkers Tech Blog
こんにちは、Nathan Willsonです。リンカーズのバックエンドエンジニアとしてRubyで開発しています。 リンカーズ株式会社は2022年のPlatinum SponsorとしてRubyKaigiに参加しました!私はRubyKaigiに初参加し、様々な経験をしましたのでこちらで共有したいと思います。 今年のRubyKaigiは三重県津市にて3日間にわたって開催されました。 Takeaways*2 Rubyが速くなっている: 特にJITのコンパイラへの貢献が多くて、どんどん効率的になっています。既存のJITコンパイラのみならず、YJITという新コンパイラも開発中です。パフォーマンス改善がさ…
2年前
記事のアイキャッチ画像
My RubyKaigi 2022 Experience
Linkers Tech Blog
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 was held in Tsu, Mie over 3 days. RubyKaigi Takeaways Ruby is…
2年前
記事のアイキャッチ画像
Rubyのパターンマッチで再帰関数
Linkers Tech Blog
はじめに こんにちは、情報システム部サービス開発チームの金です。 Rubyのパターンマッチ機能、皆さんは使っていますか? Ruby2.7の実験的(experimental)新機能として発表されて久しいですが、Ruby3.0では一部についてexperimentalの警告が出なくなり、その後も新構文が続々と追加されています。 RailsでもActive Modelにパターンマッチを使えるようにするPRがマージされたりと、これから使う機会が増えそうな機能です。 ...が、私はまだ使ったことがありません。 何かを覚えるには実際に手を動かすのが一番ですよね。 聞くところによると、「パターンマッチ」は「再…
2年前
記事のアイキャッチ画像
Elasticsearchの日本語対応 (with Rails) と学んだこと 💡 [ 日本語版 ]
Linkers Tech Blog
導入 情報システム部サービス開発チームのNathanです。この記事ではElasticsearchについて学んだことをご紹介します。横山さん、翻訳をしていただきありがとうこざいました。 The English version can be found here. 目的 Elasticsearchを設定して使用するためのガイドは数多くありますが、大部分は英語のデータを対象にしたものです。この記事は、そのほとんどが日本語で占められたデータをElasticsearchで扱う上で、もし最初にこれを知れていたら嬉しかったという知識を詰め込んでいます。 elasticsearch Elasticsearch…
2年前
記事のアイキャッチ画像
Elasticsearch for Japanese (with Rails): What we learned 💡 [ 英語版 ]
Linkers Tech Blog
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 setting up and using Elasticsearch, but the majority of them are focused …
2年前
記事のアイキャッチ画像
【Elasticsearch】Validation Failed: 1: this action would add [10] total shards, but this cluster currently has [1992]/[2000] maximum shards open
Linkers Tech Blog
はじめに 情報システム部の横山です。今回はElasticsearchを利用した機能を本番リリースする直前に発生した、表題のエラーについてご紹介します。このエラーが出るのは一部のアプリケーションだけだとは思いますが、同じエラーが出た人の一助となれば幸いです。 背景 Elasticsearchを利用した全文検索機能のMR(マージリクエスト)をdevelopブランチにマージし、社内で使っているStaging環境でも無事動作確認ができ、別のテスト環境にもデプロイしました。それではお客様にも確認して頂き、それがOKだったら本番にもリリースしよう……という時に、テスト環境からSlackにエラーが通知されま…
2年前
記事のアイキャッチ画像
【MySQL】短縮URLテーブルのレコード大量削除と断片化解消
Linkers Tech Blog
こんにちは、情報システム部サービス開発チームの石川です。 長年システムを稼働していると、いつの間にかテーブルに大量のデータが溜まってしまうこともあります。 はじめから溜まりすぎないように設計できればベストですが、溜まってしまったものは仕方ないので削除しましょう。 ターゲット 今回整理するのは、タイトルにもある通り、短縮URLを管理するテーブル slugs (仮名)です。 溜まりに溜まったレコード数、約1億6870万件。 中々のものです。 レコードを削除する 今回はジャンプ先のURLをもとに削除するレコードを決めました。 巨大になってしまったテーブルは扱い方によっては簡単にスロークエリになってし…
2年前
記事のアイキャッチ画像
【MySQL】INSERT ... ON DUPLICATE KEY UPDATE の使い方と注意点
Linkers Tech Blog
はじめに 情報システム部の横山です。 MySQLでバルクアップデートをしたいことはままあります。そこで使用するのがこのINSERT ... ON DUPLICATE KEY UPDATEなのですが、Web上では「どうやってアップデート元のレコードが決定されるのか」まで触れた使い方の記事が見つけられなかったので、自分の備忘録も兼ねて書くことにしました。 バージョン MySQL 5.7.36で動作確認しています なぜ一括でUPDATEをするべきなのか 理由はシンプルで、個別のUPDATE文を発行するよりもパフォーマンスが良いからです。 DB-クライアント間で毎回通信しなくて済む 1クエリで更新すれ…
2年前
記事のアイキャッチ画像
ActionCableの基本的な挙動と、ログの意味を理解する
Linkers Tech Blog
はじめに 情報システム部の横山です。 ActionCable(Railsで扱えるWebsocketフレームワーク)のログを出力すると、見慣れない言葉が出てきます。subscribeやbroadcastやtransmitとは何を指すのだろう……と疑問を抱いたのでこの記事を書きました。 検証バージョン Rails 6.1 ActionCable 6.1 アダプタにはRedisを使用 前準備 ログをWebサーバーから分離する ログを見やすくするのはとても大切です。ログを丁寧に扱わないのは、犯人の指紋が残っているドアノブに、刑事がべたべたと自分の指紋をつけてしまうような愚行です。エラーが起きたときの手…
2年前
記事のアイキャッチ画像
「Railsバージョンを倍にしたサービスのそれまでとそれから」をKaigi on Rails 2021で発表しました #kaigionrails
Linkers Tech Blog
こんにちは、大河原です。情報システム部サービス開発チームにて、Linkers.net の開発チームリーダーをしています。 このたび、私は10/22金-23土に開催されたKaigi on Rails 2021 にて、「Railsバージョンを倍にしたサービスのそれまでとそれから」というタイトルで登壇いたしました。 kaigionrails.org kaigionrails.org
3年前
記事のアイキャッチ画像
新入りエンジニアの入社後最初の一週間、そしてリモートワークレポート
Linkers Tech Blog
はじめに、新型コロナウイルス感染症に罹患された皆さまおよび関係者の皆さまに、心よりお見舞い申し上げます。 一日も早い収束と、皆さまのご健康を心からお祈り申し上げます。 現在弊社では、感染拡大防止の観点から自宅勤務が推奨されています。 この記事では、全くのエンジニア未経験者である私(金)が、入社1週間後にリモートワークを経験することになった中で感じたことや学んだことをお伝えいたします。 対象読者 自己紹介 物理的な1週間 初日 2日目〜 論理的な1週間 リモートワークの良いところ リモートワークの課題 コミュニケーション 生産性 200.steps 改善したこと、したいこと まとめ We are…
4年前
記事のアイキャッチ画像
S3互換ストレージMinIOの開発環境(Rails)への導入
Linkers Tech Blog
はじめに 情報システム部の横山です。 この記事は、Ruby on Railsの既存プロジェクトにMinIOを実際に環境に導入し、その際つまずいたところを記録した記事です。 MinIO導入の経緯から、ローカルの開発環境にコンテナとして導入して、最後はCIが緑になって開発ブランチにマージされるまでを書いています。 対象読者 Railsプロジェクトの環境にMinIOの導入を検討している人(どんな障壁があったか知りたい人) RailsプロジェクトでMinIOを導入しようとして詰まっている人 MinIOをDockerのコンテナ上で動かしたい人 MinIOを知らない人 MinIOとは何か MinIO Ob…
4年前
記事のアイキャッチ画像
Meetup for Rails engineers -メドピア×リンカーズ×Classi開発事例- 開催レポート
Linkers Tech Blog
リンカーズは去る10月30日に行われた "Meetup for Rails engineers -メドピア×リンカーズ×Classi開発事例-" を、メドピア社・Classi社と共に開催しました。弊社からは3名が登壇しましたので、その模様を紹介します。 (書き手: リンカーズ 鈴木竜太) 礒飛拓也「リンカーズの紹介」 大河原修「実践Railsアプリケーション設計」 鈴木竜太「安定したFeature Specを助ける3つの処方箋」 発表を終えて 次回予告
4年前
記事のアイキャッチ画像
JavaScriptでのイベントキャンセルの落とし穴
Linkers Tech Blog
Railsで開発していると、デフォルトのSubmitイベントを上書きしたい時に遭遇することがあると思います。 そういった場合は、Clickイベントなどを利用して、デフォルトのSubmitイベントはキャンセルし、上書きした処理を実行することになります。 しかし、イベントリスナーの設定方法やキャンセル方法によっては、予期せぬ動作を引き起こすことがあります。 JavaScriptのイベント伝播の仕組みを理解していれば、予期せぬ動作を未然に防ぐことが出来ます。 イベントの伝播の仕組み デフォルトアクションのキャンセルとバブリングの停止 例:二重送信の防止 まとめ
5年前
記事のアイキャッチ画像
Slack始めました MattermostからSlackへの移行手順
Linkers Tech Blog
リンカーズでは最近コミュニケーションツールを Mattermost から Slack に切り替えました。当ブログでは2回に分けてSlack移行についてお伝えしたいと思います。まず今回はMattermostからデータを抽出し、Slackにインポートする手順です。 概要 移行できなかったもの 作業 export 手元に移動 convert import 自動化できなかった作業 カスタム絵文字 チャンネル mattermostにはなかったチャンネルを追加 プライベート化、アーカイブ おわりに
5年前
記事のアイキャッチ画像
リモートオフィスでの仕事を紹介! 2019年3月Matz会ダイジェスト
Linkers Tech Blog
こんにちは、リンカーズ情報システム部の鈴木です。今回は弊社に残るMatz会アーカイブから2019年3月開催分をお送りします。 似た企業名を探す アルゴリズムの紹介 パフォーマンス計測 Ruby本体での採用例 リモート勤務3年目 東海オフィスの環境 メリット・デメリット・注意していること まつもとさんから まとめ We are hiring!!
5年前
記事のアイキャッチ画像
イベントトラッキング用gem ahoyで、deviseの複数のユーザモデルを取り扱う
Linkers Tech Blog
ahoy導入の経緯と課題 ahoyはRailsアプリケーションにアナリティクスツールを組み込むためのgemで、Railsアプリケーション上でユーザ行動ログを取得し、保存することができます。データの保存先としてActiveRecordを選択することができるので、最小構成のインフラでも簡単に導入することができます。また、Railsアプリケーションの一部として動くため、Google Analyticsへの接続を制限している環境のユーザの行動も補足することができるというメリットもあります。 開発中のRailsアプリケーションは認証用のライブラリとしてdeviseを利用しており、お客様と社内のスタッフを…
5年前
記事のアイキャッチ画像
「ポストMatz」はいつ、誰が? 2019年2月Matz会ダイジェスト
Linkers Tech Blog
こんにちは、情報システム部の鈴木です。 弊社では技術顧問: まつもとゆきひろ氏を招いて定期的に勉強会(通称: Matz会)を行なっています。お待たせしました、今回は今年2月開催分のレポートです。 今回のテーマはこちらです。詳しいレポートは「続きを読む」より。 Rubyで音楽を奏でる 目指す挙動と実装方針 実装と課題 まつもとさんによる補足 "xruby syndrome" エンジニアへの提言 Pythonコミュニティで起きたこと Ruby長期運用計画 まとめ We are hiring!!
5年前
記事のアイキャッチ画像
リンカーズは「RubyKaigi 2019」にスポンサーとして参加します
Linkers Tech Blog
おはようございます。情報システム部の鈴木です。 いよいよ今月18日から RubyKaigi 2019 が福岡にて開催されます。リンカーズは Platinum スポンサーとして RubyKaigi 2019 を応援しています!2017年広島開催から、3年連続3回目の協賛になります。 ブース出展 ブースでは弊社社員が皆様のご来場をお待ちしています。またこのようなノベルティも用意しているので、ぜひお気軽に立ち寄って手にとってください。 ソースコードの見通しに・デスククリーナー レビュー漏れへの確かな実感・メガネ拭き ビジネスマッチング祈願・ステッカー リンカーズオリジナル デスククリーナー・メガネ拭…
5年前
記事のアイキャッチ画像
リンカーズは「Rails Developers Meetup 2019」にスポンサーとして参加します
Linkers Tech Blog
みなさんこんにちは、情報システム部の大河原です。 リンカーズは、3/22金から23土に日本オラクル社様にて開催されるRails Developers Meetup 2019 に1日目のケータリングスポンサーとして参加します! railsdm.github.io RailsDMは2017年より継続的に開催されているRuby on Rails開発者が集まる勉強会です。 2018年は計4日間に渡って開催され、いずれも好評を博しました。 今回は、なんとRailsの生みの親・David Heinemeier Hansson(DHH)氏がリモートで参加されるとのこと。 また、登壇者も非常に豪華な顔ぶれとな…
5年前
記事のアイキャッチ画像
「コーディング不要の時代」は来るか 〜 2019年1月度Matz会レポート
Linkers Tech Blog
こんにちは、情報システム部エンジニアの大河原です! 弊社技術顧問:まつもとゆきひろ氏との勉強会(通称:Matz会)について、11月度、12月度と記事を書いてきました。 linkers.hatenablog.com linkers.hatenablog.com 今回は1月度のMatz会についてレポートします。年明け一発目、1/9の開催です。 新年のあいさつと新メンバー2名の紹介を行ったあと、いつものように「メンバーがLTを行い、それに対してコメントをいただく」という形式で進めました。 今回のテーマはこちらです。 Ruby歴1年の僕が逃げに逃げ続けたProc/lambdaに立ち向かう話 システムエ…
5年前
記事のアイキャッチ画像
開発チームにスクラムを導入した話
Linkers Tech Blog
はじめに リンカーズ株式会社エンジニアの鈴木です。2018年6月からリンカーズで勤務しております。今回は当プロジェクトのタスク管理について、自分が取り組んできたことを紹介します。 Linkers for Bank について 私は入社から一貫して「Linkers for Bank」システムチームに所属しています。これは銀行をターゲットとしたビジネスマッチング業務支援システムで、現在とある地方銀行において導入・運用しています。「金融機関システム」というとレガシーなイメージがありますが、我々はこうした背景ながらクラウドを活用したモダンな開発体制を実現しています。 もくじ はじめに Linkers f…
5年前
記事のアイキャッチ画像
Railsで並列化が効くのはどんなとき? 〜 12月度Matz会レポート
Linkers Tech Blog
こんにちは、情報システム部・エンジニアの大河原です! このブログ最初の記事で、技術顧問:まつもとゆきひろ氏との勉強会(通称:Matz会)について書きました。 linkers.hatenablog.com 今回は、12月度のMatz会についてレポートします。 「Matz会てなに?」という方は、上記の11月度の記事をご覧くださいね。 今回も、「メンバーがLTを行い、それに対してコメントをいただく」という形式でした。2人のメンバーが発表したトピックは、以下の通り。 力はPower! 速さはSpeed! RUBYGEMS 入門 タイトルだけ見ると何の発表だか分からないものもありますね。 詳しいレポート…
5年前