mecablog

Thoughts, stories and ideas.

ghost

Ghost を v0.1 系から v3 系に移行した。あるいは CWM (CJK Writes Matter) について。

‌ このブログは Ghost というブログシステムによって稼働しているが、遙か昔、正式リリース前の v0.1 系 の時に入れたままで、シンプルなブログシステムとしては良く動いていたのもあってずっとアップデートをサボっていた。 しかし、リンクのついた画像を配置した場合に AMP 用のページで画像が表示されない問題に気づき、これは実はテンプレートの問題だったかもしれないのだが、この機会に最新版までアップデートしてみることにした。すんなり行ったのでやり方を記録しておく。 なお、基本的には公式の方法に従っている。まず v0.1 系から v1 系に移行し、それから v3 系に移行した。 なお、CJK Writes Matter という煽りに釣られて来た読者は感想の項を読めば良いかもしれない。 前提 現在、Ghost が /app/ghost/ にインストールされているものとし、移行後も同じディレクトリで動かすものとする。APIの変更により、テーマも移行するためには手動でテーマのファイルを修正する必要があるが、今回はテーマの移行は諦めることにする。

  • mecab
    mecab
「京」コンピューターの CPU が届いた。
essay

「京」コンピューターの CPU が届いた。

理化学研究所が「Society 5.0に向けた高性能計算科学研究支援及び研究者育成支援に関する寄附金」という寄付を募っている。これに 50,000 円以上の寄付をすると、特典として「京」コンピュータで使用されていたCPUを活用したグッズがもらえるとのことだったので、昨年 (2019年) の6月頃に寄付をしていた。 「京」は2019年は8月に運用を終了し、先日、後継機である富岳が TOP500 で1位になり、そして7月2日に CPU が届いた。 メルカリで適当に買ったジャンク CPU よろしく(失礼)プチプチにでも包まれて封筒で適当に届くかと思っていたのだが、段ボールの外箱の中には黒のかっこいい化粧箱が入っていて驚いた。

  • mecab
    mecab
tech

Vetur を複数のルートフォルダを持つワークスペース上で正しく動作させる方法

TL; DR Vetur を動作させたいフォルダをワークスペースの先頭に移動させると良い。 (adsbygoogle = window.adsbygoogle || []).push({}); 本文 Vetur は Visual Studio Code 用の、Vue プロジェクトのための拡張機能だ。これは Vue コンポーネントのためのシンタックスハイライティングやフォーマッティング、Linting などを行ってくれて便利だ。しかし、複数のルートフォルダを持つプロジェクトでは、期待する設定ファイルを読み込まず、上記の機能が正しく動作しないことがある。 以下に例を示す。 上記の画像では、個人的に作っているプロジェクトのビューの一つだが、@/... で始まるパスが VSCode 上で解決されておらず、エラーが出ている。さらにこのために関連するモジュールについて効かなくなっている。参照されるべき tsconfig.json には "paths": { "@/*": [ "

  • mecab
    mecab
ホットクックのレシピを検索する Slack bot を作って、副産物としてホットクックレシピ検索ライブラリができた。
development

ホットクックのレシピを検索する Slack bot を作って、副産物としてホットクックレシピ検索ライブラリができた。

ホットクックという、シャープが販売している自動調理鍋があって、これは神の調理器具だ。材料を切って調味料とともに鍋の中に入れてメニューを選択すれば、いつの間にか料理が完成している。しかもおいしい。さらに Wi-Fi 接続モデルでは、公開された新しいレシピが随時ダウンロードされていく。ダウンロード機能の件を抜きにしても、Wi-Fi があるモデルのほうが画面も見やすく操作しやすいと思うので、どうせ買うなら Wi-Fi 版を買った方が良いと思う。 現代の三種の神器として、ホットクック・ルンバ・食洗機を入れていいのではないかと個人的には感じている。 レシピはホットクックの公式サイトで検索できるが、わざわざブラウザを開くのもめんどくさいので Slack bot として動き、メンションを投げると検索したり、レシピの詳細を表示してくれるプログラムを Node.js 用に書いた。

  • mecab
    mecab
development

TypeScript コードのテスト時、ビルド後のファイルもテストする

TypeScript でコードを書いた際、ソースのテストは通っていても、何かの弾みでビルドされたコードが壊れていないことを念のために確認しておきたいという需要はある。とくにライブラリを作っていて、npm に公開する場合など、publish 前に検証するのは良い考えだろう。 このために、同じテストコードをソースと生成物それぞれに対して適用する方法を考える。つまり、以下のような conditional import を行いたい。 // このコードは動かない。 if (process.env.TESTMODE === 'dist') { import { FooClass, FooString } from '../dist/Foo'; } else import { FooClass, FooString } from '../src/Foo'; } describe('Test foo', function() { it('works', function(

  • mecab
    mecab
Happy Hacking Keyboard Professional Hybrid Type-S を買った。
hhkb

Happy Hacking Keyboard Professional Hybrid Type-S を買った。

2020年1月7日追記: 修正ファームウェアの公開予定日について追記した。 2020年2月5日追記: 修正ファームウェアを適用した感想を追記した。 HHKB 表題の通り、Happy Hacking Keyboard Professional Hybrid Type-S を買った。 Happy Hacking Keyboard Professional Hybrid Type-S Happy Hacking Keyboard (HHKB) は、高級キーボードの一つで、その打鍵感や無駄を省いたキー配置、そしてそのコンパクトさが人気のキーボードだ。2006年に発売された HHKB Professional

  • mecab
    mecab
tech

(未解決)OpenWrtでv6プラス (MAP-E) 接続すると、一部のサイトに接続できなくなった。

先日の記事で、OpenWrtでMAP-E、あるいは国内ではv6プラスと呼ばれる方法での IPv4 over IPv6 接続に成功したことを書いた。 快適に利用できていると思っていたが、ある日、一部のサイトに接続できないことに気づいた。例えば、ニチバン株式会社のWebサイト (https://www.nichiban.co.jp) に接続できない。読み込みまでとても時間がかかったり、あるいはタイムアウトしてしまう。他のサイトでも時々読み込み遅かったり、途切れたりすることがある [1]。 IPv6 ではルータがパケットをフラグメントすることが禁止されているため、MTUが大きすぎた上に経路上で ICMP がフィルタされて Packet too Big が届かなかった場合、接続ができなくなる可能性があるとの情報を見たため、MTUを下げたり、MSS Clamping の設定を有効にしたが、改善しなかった。 @chinjinson さんが、前の記事を読んで同様に MAP-E 接続に成功されたということだったので、ニチバンのサイトに接続できるかどうか伺ったところ、

  • mecab
    mecab
tech

OpenWrtでv6プラス (MAP-E) での IPv6 / IPv4 接続と、IPv4 PPPoEでのサーバー公開を両立する

(追記)この方法は完全ではないです 後日、以下の方法では特定のサイトが見ることができなくなったり、表示が遅くなったりする問題が起こることが分かった。この問題はまだ解決できていない。本記事の内容を試す前に、追記記事を読むことを強く勧める。(そして、発生する現象の解決を試みるのも良いかもしれない。) (未解決)OpenWrtでv6プラス (MAP-E) 接続すると、一部のサイトに接続できなくなった。 概要 IPv6 の普及が進みつつあり、IPv6 での接続オプションを提供するプロパイダも増えている。日本国内においては、光接続において一般的に使われてきた IPv4 PPPoE 接続においてはフレッツ網終端装置での混雑によって速度が低下することが指摘されているが、IPv6 接続ではこの混雑を回避することができ、通信速度が向上するという利点もある [1]。 今回、自宅のインターネット接続を IPv6 化を試み、OpenWrtを導入したルータで IPv6 接続できたので、本記事ではその方法を記録する。IPv6 で接続した際に、 IPv4 の通信をどのように通す(IPv4 over IPv6)

  • mecab
    mecab
Emacs

GUI 版 Emacs のフォントサイズをシュッと変える interactive function

2019年10月15日: さらに簡単に変更する、標準で可能な方法を追記をした。 Mac 上で GUI 版の Emacs を使っているが、フォントサイズを変更したくなることが時々ある。ターミナルで Emacs を使っているならば、ターミナルのフォントサイズを変更すればいいが、GUI 版の場合、set-face-attribute関数を使って変更しなければならない [1]。 そこで、フォントサイズを簡単に変更するための interactive function を書いた。以下のGistにあるスニペットを .init.el 等に追加すれば、M-x change-font-size でフォントサイズを変更できる。現在のフォントサイズも表示されるので分かりやすい。 Gist: mecab/change-font-size.el 以前使っていたビルドではツールバーにフォントサイズ変更のメニューがあったのだが、今使っているビルドでは無くなってしまって少し悲しい。 追記 標準で簡単なキーバインドで変えられるやんけ!!!しかもバッファごとに変更できるし! text-scaleは次のショートカットを覚えてしまうのがいいです。 次のどれか一つを覚えさえすればOKです。 C-x C-+

  • mecab
    mecab
firebase

Firebase Authentication のデータを別プロジェクトにコピーするスクリプトを書いた

表題の通り、Firebase Authentication のデータを別プロジェクトにコピーしたい状況が起こったので、それを行うためのスクリプトを書いた。 copy_firebase_auth.sh 使い方 Firebase CLI でコピー元、コピー先それぞれのプロジェクトにログインする Firebase の Web コンソール上でコピー元のハッシュパラメータをコピーし、スクリプトと同じディレクトリに .hashParameter として保存する PROJECT_FROM={コピー元プロジェクトID} PROJECT_TO={コピー先プロジェクトID} copy_firebase_auth.sh を実行する 解説 基本的にやっていることは単純で、Firebase のCLI にはユーザーのデータをディスク上に書き出す firebase auth:export と、書き出されたファイルから Authentication にデータを読み込む

  • mecab
    mecab
tech

追加ソフトのインストール無しで、ボイスロイド品質のTwitchチャット読み上げを行う。

この記事の内容はもう使えません 2019年6月17日をもって、docomo による「音声合成【Powered by AI】API」が終了した [^1]。これにより、以下の方法によるチャット読み上げは使えなくなった。以前書いた、Webブラウザに内蔵されている音声合成エンジンを利用する記事(棒読みちゃんなどのインストール無しで簡単にTwitchチャットの読み上げを行う)を利用してほしい。 あるいは、株式会社エーアイが提供するもの以外(HOYA製とNTTテクノクロス製)の音声合成エンジンを利用するAPIは引き続き提供されているので、知識のある方はそれらを使うのもいいだろう。 概要 先日、棒読みちゃんなどのインストール無しで簡単にTwitchチャットの読み上げを行うという記事を書いた。この記事では、StreamLab の Chat Box と、Web Speech API を組み合わせることで、追加のソフトウェアをインストールすることなく、Twitch チャットの読み上げを行う方法を書いた。 上記の方法を応用すると、Twitch チャットの情報を Web Speech API

  • mecab
    mecab
棒読みちゃんなどのインストール無しで簡単にTwitchチャットの読み上げを行う
tech

棒読みちゃんなどのインストール無しで簡単にTwitchチャットの読み上げを行う

概要 本記事では、追加のソフトウェアのインストールを行うことなく Twitch チャットの読み上げを行う方法について説明する。正確を期せば Chrome、 Firefox、Edge といったブラウザが必要になるが、多くの環境ではすでに導入されているだろう。本手法では、Streamlabs [1] の Chat Box に対して、受信したチャットメッセージを Web Speech API の SpeechSynthesis に渡すカスタム Javascript コードを設定することで読み上げを実現する。 (adsbygoogle = window.adsbygoogle

  • mecab
    mecab
tech

Cloud Firestore エミュレータ を concurrently と一緒に使う

概要 Cloud Firestore エミュレータ を コマンドの並列実行支援モジュール concurrently と一緒に使う場合、コマンドを少し工夫しないと期待通りに動作しない。以下を行う必要がある。 エミュレータの起動の際、firebase serve --only firestore < /dev/null とし、標準入力を /dev/null から取るようにする。 concurrently の--success (-s) オプションを適切に設定する。 期待通りに動作する npm script の例を以下に示す。 "scripts": { "test": "concurrently --success=first --kill-others -n 'emulator,

  • mecab
    mecab
development

Firebase Hosting のルーティングを噛ませて webpack-dev-server などの静的コンテンツホストを使うためのプロキシ

2019/1/14 午前5:57 (JST) provider のコードを修正。 概要 Firebase Hosting 用に設定したURL書き換えを利用しつつ、webpack-dev-server などの他の開発サーバーからコンテンツの取得をしたい。この問題に対して、Firebase Hosting の開発サーバー (firebase serve) が内部的に利用している superstatic を使い、URLを書き換えた上で別のサーバーからコンテンツを取得するようなプロキシを作ることで解決した。 完全なコードは https://gist.github.com/mecab/9890416390e8c5a2c42547823d252e20 で参照できる。 (adsbygoogle = window.adsbygoogle || []).push({}); 背景と問題 Firebase Hosting は Google が提供する静的コンテンツのホスティングサービスだ。コンテンツを用意して適切な設定を書けば、そのコンテンツをHTTPで取得できるように

  • mecab
    mecab
uk

英国 Three の SIM を買う際に損しない方法: クレジットをアドオンに変換するのを忘れるな

概要 Three の Pay As You Go プランを購入または積み増しをした際、積み増したクレジットをアドオンに変換しないと 0.01GBP / MB と不利な料金で課金されるため、積み増し直後に忘れずに変換すべきだ。変換は Three の SIM を入れた状態で、https://three.co.uk/my3 から行える。 背景 諸事情で現在北アイルランドに来ている。外で携帯電話が使えないと不便なので Three というキャリアの SIM を購入した。Three は英国でサービスを提供するキャリアの中では比較的安く、かつEU圏内でのローミングを無料で提供している[1]。 Three のプリペイド式のプランである Pay As You Go プランでは、Phone

  • mecab
    mecab
ZshとiTerm2の環境下で、プロンプトにemojiを用いた場合にコマンド補完後に最初の1文字が重複して表示される問題を解決した。
terminal

ZshとiTerm2の環境下で、プロンプトにemojiを用いた場合にコマンド補完後に最初の1文字が重複して表示される問題を解決した。

ある日久々にiTerm2をアップデートしたところ、コマンド補完後に最初の1文字が重複して表示される問題が起こった。 と言われてもどのような問題か分からないと思う。ぼくも上手く説明できない。実際に見るとすぐ分かるので動画を撮った。 以上のように、補完を行うと、入力していた文字列の1文字目が重複して表示される上に、行を消しても1文字だけ残ってしまう状況になる。これは表示上だけの問題で、Enterキーを押しても入力されて無いものとして扱われる。この状況で作業するとかなりストレスが溜まった。 プロンプトの文字列を変更して問題を切り分けると、emojiがプロンプト中に含まれているのが原因だと分かった。ぼくの環境では$の代わりに💰のemojiを使っている。金運アップを見込んでだ。 解決するにはプロンプト指定において、emoji部分を%1{と%}で囲めばよい。%1{💰%}という具合だ。 解決にあたっては、StackexchangeのFirst characters of the

  • mecab
    mecab
コンバースは輸入できるし、Superdry 極度乾燥(しなさい) も輸入できる。さらに言えば偽ブランド品も輸入できる(ただし個人利用に限る)。たぶん。
shopping

コンバースは輸入できるし、Superdry 極度乾燥(しなさい) も輸入できる。さらに言えば偽ブランド品も輸入できる(ただし個人利用に限る)。たぶん。

本記事は法律や通達の解釈を含むが、筆者は法律の専門家ではない。もし記事に誤りや解釈の間違いがあった場合は @mecab まで指摘いただけると嬉しい。 概要 Superdry 極度乾燥(しなさい) や、日本国外で売られているコンバースの商品は、正規品であっても個人輸入すらできないという言説がある。これはぼくの解釈によれば間違いであり、業として輸入せず、個人的に使う限りであれば輸入することができる。 また、上記のような海外ブランドの正規品の輸入に限らず、偽ブランドでも同様に個人で利用する分には輸入できそうだ。両社とも税関で止められる可能性はあるが、適切な意見書を提出することで輸入は認められるだろう。 (adsbygoogle = window.adsbygoogle || []).push({}); 背景 元々この記事は半年前あたりに「オフホワイト コンバースを輸入したら税関に滅却されお金まで取られた話[1]」というブログ記事が話題になっていたころに書こうと思いながら調べたり構想を暖めておいたものだ。

  • mecab
    mecab
32TB分のHDDを買った
tech

32TB分のHDDを買った

自宅で運用しているサーバには既に12TB分のストレージ を積んでいるが、最近は容量が枯渇してきていた。そのため、HDDを増設することにした。せっかく増設するならば、しばらく容量に関して思い悩まないようにするために思い切ってたくさん積みたいと思って、4TBx8台ほど積むことにした。後に述べるとおり、HDDケースとeSATA拡張カードも一緒に買った。 機材の選定と購入 HDDケース 既にHDDベイは使い切っているのでHDDケースも買う必要があった。8台詰めるケースとなるとその時点で選択肢はかなり少なくなるのだが、その中でもロジテックのガチャベイ LHR-8BNHEU3を購入した。これにした理由は、以下の2点からだ。 1) ケース側でRAIDを作らず、HDDを個別に認識できる 2) eSATA 6GとUSB3.0の両インターフェースを持っている。 1の要件は、サーバ側でZFSプールを作りたいと思っていたので必須だった。なお、同じケースののRAID対応版としてLHR-8BRHEU3があるのだが、こちらは

  • mecab
    mecab
internet

光コラボに関する悪質な訪問販売をうけたので総務省に通報した

我が名は、悪質な訪問販売絶対殺すマン!!!(ついでにいうと悪質じゃなくてもすべての訪問販売は滅びてほしい) (adsbygoogle = window.adsbygoogle || []).push({}); 概要 先日、光コラボレーションモデル(光コラボ)を使ったインターネット回線(ソフトバンク光)への乗り換えと、それに伴うISP(Yahoo! BB)の乗り換えについて悪質な訪問販売を受けた。具体的にはアパートの共用盤の工事関連かと思われる言動をしてオートロックの中に入ってきたことと、2)まるでNTTが安いインターネット接続を始めたかのような誤解を招く発言をした点が悪質だった。この点に関して、総務省電気通信消費者相談センターへの電話での通報を行ったので、この一部始終を記載する。なお、会話については録音していなかったので原文ママではないことを承知いただきたい。大意はそのまま書けているはずだ。 訪問 先日から風邪をひいてつらい思いをしているのだが、家で倒れこんでいるとインターフォンが鳴った。**「お世話になっておりますー。(会社名)ですー。お宅のマンションのインターネットの共用盤について確認があるのでオートロックを開けてください。」**とのこと。一見、回線の工事をやっているような業者のように聞こえるが、何のことはなくただの営業で、共用盤を見ることはない。いつもは「回線の営業ですよね?」と確認し、「営業なら営業と言ってください。」と追い払うのだが、

  • mecab
    mecab
pubg

PUBGでマウスカーソルの位置がずれるときの対処法(と、PUBGの布教のための文章)

概要 PUBGでマウスカーソルがずれる場合、PUBGの起動前にWindowsのタスクバーを左右におかず、上下に置くようにすればよい。 (adsbygoogle = window.adsbygoogle || []).push({}); 本文 最近PLAYERUNKNOWN'S BATTLEGROUNDS(PUBG)をプレイしているのだが、フルスクリーンで遊んでいると時々(特に、Alt+Tabで一旦裏に回して戻したときとか、解像度を変えた時とか)マウスカーソルの位置がずれるという問題が起こっていた。 ずれるというのは、言葉で説明しにくいが、マウスで何かをポイントしたり、クリックしたりした際、動作が行われる場所がポインタのやや左側になるという現象だ。これが起こると、マップ上でピンを立てた際にピンが立つ位置がポインタの場所ではなくなったり、インベントリで上手くアイテムを選択できなくなってゲームの進行に著しく支障をきたす。 ウィンドウを何度か切り替えたり、解像度を変えたりしていると直るので、ずれた場合はなんとかそれで凌いでいたのだが、さすがにイライラしてきたのでWeb調べてみたところ、Windowsのタスクバーを左右におかず、上下に置けば解決する [1] とのことだった。どうやら、このずれはタスクバー分のずれのようだ。ぼくは実際に画面左側に配置していた [2]。自分の場合は、見た目上のカーソルが右側にずれていたが、おそらくタスクバーを右側におくと、左側にずれるのだろう。 実際にやってみたところ、

  • mecab
    mecab
Lightroom専用コンソールこと、Loupedeckが届いた
photo

Lightroom専用コンソールこと、Loupedeckが届いた

2017年7月30日 利用環境に関して追記。一部の段落を入れ替え。 クラウドファンディングサイトであるところのIndiegogoといえば、最近はGPD Pocketが届かないと日本人が騒いでいてうるさいと一部で話題だが、そんな騒ぎを横目に、去年の10月に229EUR (+送料38EUR)を投げ入れていたLoupedeckがついに届いた。本記事では、Loupedeckの紹介をし、製品への第一印象を述べる。 TL; DR スタイリッシュな見た目に反して材質はチープ。しかし操作感は良く、想像以上に便利で機能的にはかなりいい。ソフトウェアの更新でより改善できる点はありそうで今後に期待。 (adsbygoogle = window.adsbygoogle || []).push({}); Loupedeckの概要 Loupedeckの外箱 Loupedeckは写真編集ソフトであるAdobe Lightroom専用のコンソールだ。露出・コントラスト・回転・

  • mecab
    mecab
development

TWESDKでmallocみたいな動的メモリ確保をする

概要 ミーハーなので最近はIoTみたいなことをしている。簡単な無線通信をしたくて、TWESDKを使ってMonoStick(旧TocoStick)で動くプログラムを書いているのだが、動的にメモリを確保する方法を見つけるのに苦労したので記録しておく。 やりたいこと いわゆるmallocを使った動的なメモリ確保。よくあるやつ。 #include <stdlib.h> #include <string.h> void func(void) { uint8 bufLen = 16; char* buf = (char*)malloc((sizeof char) * buflen); // ここ strcpy(buf, "foobar"); } TWESDKで開発していると、上記をやってもmallocがメモリを確保してくれず、常にNULLを返してくる。 解決方法 #include

  • mecab
    mecab
research

JSAI2017での発表が炎上している件についての私見。

2017年度 人工知能学会全国大会(JSAI2017)で行われたある発表が炎上しているのを観測している。祭りごとが好きな性分なので基本的に炎上はたーのしー!もっとドンパチやれーと思って眺めているのだけれど、思ったより泥沼になっていてつらい気がしたのでまとめつつ私見を書くことにした。 思うところは基本的にTwitterにぼちぼち書いていたので、それらを載せつつ適宜文章を補う形で書いていこうと思う。 経緯 まず今回の炎上の経緯を簡単にまとめる。 JSAI2017で近江らにより「ドメインにより意味が変化する単語に着目した猥褻な表現のフィルタリング」という発表がなされた。この論文はPDFとしてWeb上でも公開された(現在は非公開: 後述)。 (2017/5/24夜ごろ)論文中では、pixivより10個のR-18小説を選び、猥褻な表現に関する文を抽出し分類していた。選んだ10個の作品については「URL」、「作者名」、「小ジャンル(ノーマルラブ/ボーイズラブのどちらか)」を表として掲載していた。 小説の作者ら複数がTwitter上で自らの小説が無断で利用されたことを抗議し、また小説を削除、あるいはマイピク[1]のみへの公開とした。 (207/5/25朝)JSAI2017のWebサイト上からPDFが削除され「※例外的に発表原稿を非公開としました。」との説明が掲載された。 3以降、二次創作周辺のコミュニティと研究者コミュニティを中心として議論が紛糾し今に至る。 私見

  • mecab
    mecab
docker

VAAPIとDockerでDebianでもQSVを使ったh.264エンコードを行う

Debian上でChinachuを使った録画サーバを運用しているが(構築する記事は以前書いた)、これまでエンコードは普通にCPUでやっていて、そこそこ時間がかかっていた。 最近のIntel CPUに搭載されているハードウェアエンコーダであるところのQuick Sync Video (QSV) を使うとかなり速くなるというのは知っていたものの、Linux上ではIntel Media Server Studio (MSS) の導入が必要だと思いこんでいた。これが曲者で、CentOSじゃないとダメだったりカーネルにパッチ当てないといけなかったりでつらそうだし[1]で、ホストはできるだけきれいに保ちたかったので諦めていた。VM作って行おうにも、CPUがVT-dに対応していることが必要[2]で、Haswell世代のCore i3を使っているのでダメだった[3]。 ところが、最近Video Acceleration API (VAAPI) の存在を知った。これはMSSとは異なりオープンソースで開発されているハードウェアアクセラレーション用のAPIであり、カーネルにパッチを当てなくても利用することができる[1:1]。つまりDockerでコンテナに閉じ込めてきれいに使うことができるわけである。探してみると、既にVAAPI対応FFmpegを利用するためのDockerfileを作っている方がいらっしゃった(https://github.com/

  • mecab
    mecab