Folioscope

Archive for 2019

  • 英和辞書をポップアップするVimプラグインを作った

    ついこの間、Vimにpopupが実装されたという話題と、Mouse Dictionaryがタイムラインに流れてきました。 自分もVimのPopupを使って英単語の意味を調べるプラグインを作ってみました。 GitHubレポジトリはこちらです。 ueokande/popupdict.vim 読力、活力、元気 github.com 使い方 dein.vimやvim-plugのパッケージマネージャーでインストールできるはずです。 " vim-plugPlug …

  • TSyringe - JavaScript/TypeScript向けの軽量DIコンテナ

    Vim VixenではClean Architecture風の設計をしており、扱うモデルやレイヤー毎にクラスを作成します。 現在はクラス数が100を超えて、クラスにインスタンスをいちいち渡したり、インスタンスの作成と管理が面倒になってきました。 そこでVim VixenではDependency Injection (DI)コンテナを導入することにしました。 いろいろ探してみると、すでにJavaScript/TypeScript用のDIコンテナがいくつか存在するようです。 その中で(巨人の肩に乗る …

  • TypeScriptに移行して気づいた10の事実

    ついにVim VixenをTypeScriptに移行しました。 今まで強がりでECMAScriptで書いてたのですが、静的型付き言語の便利さに負けてついに移行しました。 その時に新しい発見がいくつかあったので簡単にまとめます。 エコシステムが十分に育っている TypeScriptに移行するのなら、トランスパイラ本体だけではなく周辺ライブラリのサポートも必要です。 たとえばVim VixenではWebpackでのビルドやLinterのチェックをしてます。 また使ってるライブラリの型定義もほしいで …

  • いろいろできるぞexecuteScript()

    WebExtensionsのtabs.executeScript()メソッドは、Background ScriptからContent Script上にJavaScriptを注入できます。 たまたま調べる機会があって挙動が面白かったので簡単に記事にまとめました。 基本動作 executeScript()はContent Script上で任意のスクリプトを実行して最後に評価した値を返します。 executeScript()はPromiseを返す非同期関数で、評価した値はthenの引数から取得できま …

  • 3年間働いたサイボウズを退職しません

    今年も花粉と共に退職エントリが舞う季節になりました。 せっかくなので退職しませんエントリを書きました。 この3月でサイボウズに勤めててから丸3年が経ちます。 学生の頃はWebエンジニアといえば、技術を片手に渡り鳥のように転々するかなと思ってました。 しかし実際サイボウズに入ってみると、意外と居心地が良かったので、この4月からも引き続きサイボウズで働きます! サイボウズとのきっかけ 入社以前からサイボウズLiveは知っていて、母校(奈良高専)もサイボウズOfficeを導入してました。 そのためサイ …

  • Envoy ProxyのためのEDSサーバーを作る

    いよいよEnvoyの肝であるxDSサーバーを使いたいと思います。 まず手始めにエンドポイントを設定できるEndpoint Discovery Service (EDS) を提供するサービスを実装します。 xDSおさらい EnvoyではgRPCまたはREST API経由で動的に設定変更できます。 これはEnvoyにリクエストを送るのではなく、EnvoyがAPIを提供するサーバーに繋ぎにいきます。 APIには、エンドポイントの設定を提供する Endpoint Discovery Service …

  • Envoy Proxyで作るHTTPロードバランサー

    Envoy Proxyに入門してポチポチ勉強を進めてます。 Envoy Proxyは動的な設定とxDS APIが魅力的ですが、手始めに静的な設定ファイルで動かしてみましょう。 この記事ではHTTPロードバランサーをEnvoyで構築します。 完成図は以下の図になります。 HTTPロードバランサーの後ろには、目的の異なる2つのクラスタがあります。 今回はNGINXとApache httpdを使っています。 それぞれのクラスタはnginx.localとhttpd.localというホスト名(バーチャ …

  • ブログエンジンをMiddlemanからHUGOに移行した

    このブログ、以前はMiddlemanでビルドしてたんですが、この度HUGOに移行しました。 結論から言えば、機能的にはほぼ同じで移行も簡単でした(すでにこのブログも移行済みです)。 いくつか工夫する部分があったのでそれを記事にまとめました。 テンプレートエンジンの移行 HUGOはテンプレートエンジンにGoのhtml/templateを使ってます。 HUGOではMiddlemanと同様 partial を使ってHTMLを外部ファイルとして記述できるので、パーツの共通化ができます。 …

  • Envoy Proxyに入門した

    最近Kubernetes周りの技術をよく触るのですが、Envoy Proxy (Envoy)もよく耳にするので勉強しました。 Envoy Proxy Envoyとは? EnvoyはクラウドネイティブなWebサービスのために設計されたロードバランサーです。 元はLyftが開発しており、現在はCNCF (Cloud Network Computing Foundation) によって管理されています。 Envoyには大きく2つの用途があります。 サービスメッシュの通信バス: サービスメッシュ内 …

< Page 2 of 2