有限猿定理

  •  About
  •  GitHub

【M3 Tech Blog】Goaのlinterを作った: Goalint

  •  Go

永山です。 本記事では筆者の開発した、Go製のWebフレームワーク Goa (v3) 向けのlinterツール goalint を紹介します。 Goa とは Goaは、GoのDSLでHTTPやgRPCのAPIの仕様を記述するというアプローチが特徴的なGo製のWebフレームワークです。……

続きを読む

【M3 Tech Blog】zeno.zsh を活用して Node.js パッケージマネージャの違いを吸収する

永山です。 神話の時代、天を衝く巨塔を築こうとした高慢な人類の Node.js パッケージマネージャは様々に引き裂かれたと言われています。 現代においてよく使用されているものだけでも npm, Yarn, pnpm などがあり、エムスリー社内でもプロジェクトによってどのパッケージマネージャが採用されているかはバラバラです。……

【M3 Tech Blog】高機能なZshプロンプトを自作する ーモダンなシェルプロンプトを構成する工夫ー

永山です。 普段から趣味PC、業務PCの双方で Zsh をログインシェルとして利用しています。 エムスリー社内には fish や、少数ながら Xonsh のユーザも存在していますが、多くのエンジニアがZshを使用しています ((エンジニアに支給されるPCは基本的にmacOSであるため))。……

【M3 Tech Blog】dotfilesのこだわりを晒す

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

【M3 Tech Blog】コード生成から考えるポインタの意味論

新卒の永山です。 エムスリーでは隔週金曜日に Tech Talk という社内勉強会を実施しています。 エムスリー公式テックチャンネル 【M3 Tech Channel】 では過去の発表のアーカイブを公開しています。 今回は上記YouTubeチャンネルに公開されている私の過去の発表について紹介いたします。……

【M3 Tech Blog】「Shell作れます」と言うために

新卒の永山です。 昨今、SNSではなぜかシェルを作ることに関する言及が盛んに行われています。 そこで、本記事ではシェルの実装に関する理解を深めることを目的に簡単なシェル「nosh」 をインクリメンタルに作成したいと思います。 完成した実装は以下のリポジトリで公開しています。……

OSS LT会 - vol.2 で発表した

株式会社ラクスさんの主催する OSS LT会 ★初心者の方・やっていきも大歓迎 - vol.2 で発表しました。 発表スライド 発表の概要 C言語のポインタや、ポインタに関する演算子である &演算子 と *演算子 について、コンパイラの実装の観点から論じることで通常とは異なる解釈を与える試みについて発表しました。……

Ruby に Pull-Request がマージされた (2回目)

2020年1月12日に発行したチケットと、その実装である Pull-Request が2020年2月10日に ruby/ruby のtrunkにマージされました。 以下、そのPRの内容などについて述べます。 背景 クックパッド株式会社の夏インターンシップに参加した際、InstructionSequence (ISeq) のバイナリ表現を改善しました。……

2019年度Rubyアソシエーション開発助成 に採択された

Rubyアソシエーションが主催する 2019年度Rubyアソシエーション開発助成 に提案プロジェクトが採択されました。 題目は「複数ファイルに対応したプリコンパイル機構の作成」です。 Cookpad株式会社でのインターン に参加した際、メンターの方からの勧めがあり応募したところ審査を通過しました。 以下が応募の際に提出した提案の内容です (一部省略)。……

【クックパッド開発者ブログ】Ruby中間表現のバイナリ出力を改善する

Ruby 開発チームに4週間インターン生として参加いたしました、永山 (GitHub: NagayamaRyoga) です。 私は「Ruby中間表現のバイナリ出力の改善」という課題に取り組み、Railsアプリケーションのコンパイルキャッシュのサイズを70%以上削減することに成功しました。以下ではこの課題の概要とその成果について述べたいと思います。……

Cookpad Spring 1day Internship 2019 Swiftコンパイラコースに参加した

2019年3月28日(木)にクックパッド株式会社で開催された1dayインターンシップのSwiftコンパイラコースに参加しました。 このコースは、名前の通りSwiftを用いてSwift言語のサブセットコンパイラを作成するための技術・知識を学ぶためのワークショップです。 インターンシップの主な講義内容、課題はGitHub上で公開されています。……

卒業論文をMarkdownで書く

はじめに 卒業論文に限らず、論文や技術文書とLaTeXは切り離すことができません。 しかしながら、TeXをそのまま書くのは面倒なので可能な限りMarkdownなどの軽量な文書形式で記述できると嬉しいですね。 そこでMarkdownからLaTeXを経由してPDFを生成するポータブルな環境を構築しました。……

ウェブページとミニブログを作った

はじめに JavaScriptフレームワークであるNuxt.jsを使ってウェブページとミニブログ(当サイト)を作りました。 以下では当サイトを構成する技術的要素について紹介します。 構成要素 Nuxt.js フロントエンドはNuxt.jsで作成しました。 単一ファイルコンポーネントやScoped Styleが簡単に扱える点が大変によいです。……

タグ一覧