エムスリーテックブログ

エムスリー(m3)のエンジニア・開発メンバーによる技術ブログです

【Tech Talk 動画紹介】高度な正規表現は文字化けと区別がつかない件について

こんにちは、SREチームの山本です。

といいましても、今回はSRE的な話ではなくもう少し別の話をさせてください。

エムスリーにおいて隔週で行われている TechTalk という社内勉強会で発表させていただいた「高度な正規表現」についての話となります。

元動画は以下ですのでそちらも参考に願います。

www.youtube.com

  • みんな大好き「正規表現」
  • そもそも「正規表現」とは?
    • チョムスキー階層
    • 正規表現と回文・式
  • 正規表現に対する拡張「部分式呼び出し(あるいは「田中哲スペシャル」)」
    • 部分式呼び出しの記法
    • 部分式呼び出しの使い方
    • 定義の中で呼び出す
    • BNF(バッカスナウア記法)
    • 再度部分式呼び出しを凝視してみる
    • もう1つの例(式)
  • 「文脈自由文法」を表す「正規表現」
  • まとめ
    • We are hiring!
続きを読む

dotfilesのこだわりを晒す

Unit4の永山です。 dotfiles弄りを趣味にしています。

世にdotfilesを題材とした記事は数多く存在していますがその大半は「dotfilesを作ってみた」「こうやって管理しています」などの表層的な部分の紹介に留まり、その奥にあるべき細部のこだわりや個人の思想にまで踏み込んだ記事は数えるほどしかありません。

そこで、本記事では私のdotfilesを題材にその各構成要素についてオススメ, TIPS, こだわりに分類し、可能な限り詳細に紹介します。

github.com

本記事は筆者の関心の都合上、Zshに関する項目に大きく比重を置いています。ご承知おきください。

  • dotfilesとは
  • dotfilesを作成することの利点
  • 記事の構成
  • Zsh編
    • [オススメ] プラグインの管理にZinitを使う
      • 注釈: Zinitについて
    • [オススメ] Zshプラグインは非同期読み込みする
    • [オススメ] .zshrc に書く設定は最小限に留め、その他を遅延させる
    • [オススメ] BSD系CLIツールをGNU系に置き換える (macOS)
    • [TIPS] 不要なコマンドをhistoryから除外する
    • [こだわり] $ZDOTDIR を変更する
  • Zshプラグイン編
    • [オススメ] zeno.zsh
      • 1. 略語展開
      • 2. FZFを用いた補完
    • [オススメ] zsh-replace-multiple-dots
    • [オススメ] コードスニペットの管理に navi を利用する
  • Zsh小ネタ編
    • [TIPS] PATH環境変数ではなく path を使う
    • [TIPS] docker コマンドを上書きする
  • Git編
    • [オススメ] リポジトリをghqで管理する
    • [TIPS] XDG Base Directory Specificationに従う
    • [こだわり] .gitconfig を分割する
    • [オススメ] commit.verbose に true を設定する
    • [オススメ] merge.conflictStyle に diff3 を設定する
  • Tmux編
    • [こだわり] XDG Base Directory Specificationに従う
    • [こだわり] セッションをリポジトリごとに分ける
    • [オススメ] lazygitを呼び出すキーバインドを設定する
  • mac編
    • [オススメ] macOSの設定を defaults コマンドでコードとして管理する
    • [オススメ] スニペット入力ツールを使用する
  • その他
    • [こだわり] ホームディレクトリの掃除
      • ~/.zsh_history
      • ~/.node_repl_history, ~/.sqlite_history, ~/.mysql_history, ~/.psql_history
      • ~/.irb_history
      • ~/go
  • まとめ
  • We are hiring!
続きを読む

【Tech Talk 動画紹介】リモート環境での勉強会

こんにちは、エムスリーエンジニアリングGの榎田 (@niflh) です。趣味は数学とゲームです。 GW は対馬に旅行して aji wo [K]utta*1 り、 Ghost of Tsushima のシナリオをクリアしたりしました。

エムスリーでは隔週金曜日に Tech Talk という社内勉強会を実施しており、私もたまに発表しています。今回は、私がこの1年プライベートで主催した数学の勉強会について、特に進行上の工夫について発表しました。本稿では、その内容を紹介します。元動画はこちらです↓。

www.youtube.com

  • 勉強会の概要
  • 進行方法
  • よかったところ
  • 課題・反省点
  • まとめ
  • We're hiring!

*1:私はアンドロイドではないのでアジを食べても大丈夫です。

続きを読む

【Tech Talk 動画紹介】競馬の必勝法(笑)

天皇賞も近くなってきた春の時期ですが、みなさまいかがお過ごしでしょうか。どうもこんにちは、AI・機械学習チームの丸尾 (@snowhork) です。好きなウマ娘はナリタブライアンです。

今日は、天皇賞も近いということもあり、競馬の必勝法についてみなさんにご紹介したいと思います。

「必勝法なんてあるわけないやろ!」と思った読者の方、このロジックのどこに穴があるか考えながら読むと楽しめると思います。

www.youtube.com

この記事は、社内テックトークで話した内容の紹介ブログになります。テックかどうかは微妙ですが、確率の話が出るのでまあテックということにしてください。

続きを読む

検索エンジンPyTerrierを使った日本語検索パイプラインの実装

エムスリーエンジニアリンググループ AI・機械学習チームでソフトウェアエンジニアをしている中村(po3rin) です。検索とGoが好きです。

今回は社内でPyTerrierを採用して文書検索BatchをPythonで実装したので、PyTerrierの紹介とPyTerrierで日本語検索を実装する方法を紹介します(日本語でPyTerrierを扱う記事は多分初?)。

続きを読む

JaSST '22 Tokyoで行ったミニセッションを紹介します

こんにちは! エムスリーエンジニアリンググループ QAチームの城本(@yuki_shiro_823)です。

2022/03/10~11にかけて行われた JaSSTソフトウェアテストシンポジウム-JaSST'22 Tokyo にて、エムスリーQAチームによるミニセッションを行いましたので内容を紹介します。

  • JaSST Tokyoとは
  • ミニセッション
    • ミニセッション(1) 高速リリースを支えるエムスリーQAチーム
    • ミニセッション(2) エムスリーQAチームでの取り組みについて
  • 発表してみた感想
  • We're hiring!

JaSST Tokyoとは

毎年2日間の日程で開催される、ソフトウェアテスト分野で日本最大級のシンポジウムです。公募による事例発表の他に海外からも著名な方を招いて講演が行われます。 今年は「ユニコーン企業のひみつ」のジョナサン・ラスマセン氏による基調講演が行われました。

続きを読む

Slack botをCloud Runで作る時には気をつけろ

こんにちは、スプラトゥーン3が待ちきれないAI・機械学習チームの丸尾 (@snowhork) です。

みなさん、Slack botは作ってますか? Slack botをつくるときはやはり公式のフレームワーク、Boltがやはり便利ですよね。

みなさん、GCPのCloud Runは使ってますか? ちょっとしたジョブを作って実行するにはやはり便利ですよね。コンテナ実行できるので開発や動作検証もしやすいですし。

f:id:snowhork:20220412175842p:plain
SlackとCloud Runは相性が悪い!?

世の中にこんなに便利なものがあったら、やっぱり組み合わせて使いたくなりますよね。ただ、便利なものには思わぬ副作用があり、見事にハマって1週間苦しんだ体験を残しておこうと思います。この記事でSlack bot開発で苦しむ人が一人でも救われたら幸いです...

続きを読む