hogashi.*

日記から何から

monaco-editorをmonaco-editor-webpack-pluginで使う言語を絞ってwebpackでバンドルする

 microsoft/monaco-editor を素朴に webpack でバンドルするといろんな言語のファイルがついてきて大変、なんとかしたい、ということを書いたところ色々教わった、ありがとうございます。

blog.hog.as

 教わったのは IgnorePlugin | webpackmicrosoft/monaco-editor-webpack-plugin で、前者はパスの感じを色々試したけどうまく行かなくて*1、後者がうまくいった。

 やることは 2つあって、 import するとき monaco-editor 全部を import しないことと、プラグインを使うようにすること。

最初の困っていた状態

 webpack-contrib/webpack-bundle-analyzer で様子を見るとこうなっている。右下のちまちましたやつが全部言語のファイルで、今回は css 以外不要。

f:id:hogashi:20201231135025p:plain

import を絞る

github.com

 実際に使うファイル (今回は popup.tsx) で import のしかたを変える。具体的には↑この issue で↓こう指南されていて、確かにこれで言語のファイルは全部出力されなくなる。

- import * as monaco from 'monaco-editor';
+ import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';

f:id:hogashi:20201231135213p:plain

 ただこれだけだと、ほしい言語も含めて全く何も出ないので、補完とかがされなくなってしまって困る。

f:id:hogashi:20201231134808p:plain

monaco-editor-webpack-plugin を入れる

 この状態で、さらに webpack.config.js に monaco-editor-webpack-plugin を使って css だけほしいですというのを指定する。 worker たちを entry に指定する必要もなくなる(というか ERROR in Conflict: Multiple assets emit different content to the same filename css.worker.js という感じで被ってますというエラーが出る)ので削る。

+ const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin');
  
  module.exports = {
    entry: {
      // ...
      popup: './src/popup.tsx',
-     'css.worker': 'monaco-editor/esm/vs/language/css/css.worker',
-     'editor.worker': 'monaco-editor/esm/vs/editor/editor.worker.js',
    },
    // ...
+   plugins: [
+     new MonacoWebpackPlugin({
+       languages: ['css'],
+     }),
+   ],
  };

f:id:hogashi:20201231140312p:plain

 css のファイルはあるけど他のファイルはない、というやりたかった状態にできた*2。補完もちゃんと効く。

f:id:hogashi:20201231140415p:plain


 monaco-editor 初めて入れて使ってみたけど、入れるだけならめちゃくちゃ簡単に動いておもしろかった、 Chrome 拡張機能の右上のポップアップみたいな小さいところで急に VSCode みたいなエディタが動き始めるのは 1m 四方のジオラマをリアルなミニチュア電車が走っていくのに似たおもしろさがある気がする。

*1:本当はうまいパスの感じが存在するのかもしれない / ContextReplacementPlugin | webpack もうまく行かなかった

*2:webpack-bundle-analyzer の出力、 popup.js のほうも色々出方が変わっているのなんなのか?

monaco-editorをwebpackでバンドルしたらいろんな言語のファイルが登場するけどいっこしか必要なくて困ってる

(追記 2020/12/31) →こういうことのようだった: monaco-editorをmonaco-editor-webpack-pluginで使う言語を絞ってwebpackでバンドルする - hogashi.*


 monaco-editor 使って webpack でバンドルするといろんな言語の?ファイルが登場するけど UserCSS拡張機能に使うので CSS しかほしくない、そういう設定は見当たらない気がするし探し方が悪いのか誰もそんなことしたいって言ってない、 Chrome 拡張機能は変なコード混ざってないかチェックされるのでできるだけ使うファイルだけに絞るのが理想だし、ファイル名も 1234.js みたいなめっちゃ怪しい感じで 70 ファイルとかあって自分で見てもなんか嫌になるしチェックする人も大変だと思う、なんかうまい設定とか方法とかあったら教えてほしいです。

f:id:hogashi:20201230194501p:plain
ウオオ

 これなどを見てました: monaco-editor-samples/webpack.config.js at master · microsoft/monaco-editor-samples · GitHub

自分用にUserCSSのChrome拡張機能つくった

chrome.google.com

 自分で使うための UserCSS 拡張機能を作って公開した。 Chrome拡張機能は意外と信用しづらくて、ある拡張機能がいつの間にか全く違う人に買われてて自動更新でどんどん使いづらくなるとか、あるいは変なコードを埋め込まれてて情報が送られているみたいなことが多々起きている。特に仕事しながら使うならそういうの困るな〜と思って自分でさくっと書いた。大体完成したと思っているけど、エクスポート/インポートはしたいかもなとも思ってきて、 JSON でガッとやったりできるとよさそう。よければお使いください。

 ちなみにアイコンはオリーブオイルで、料理にちょっと足すイメージと、いっぱい入れると美味しい派閥があるイメージでなんとなく決めました。

icooon-mono.com

歌詞が音問題

 歌の歌詞、聞くときも自分で歌うときも、単に音あるいは単語ごとぶつ切りでしか認識できなくて、歌詞に感動とかができない。歌詞を文字で読むとなるほどこんな歌詞なのか〜となるけど、それから聞いたり歌ったりしてもやはり意味は遠ざかって、音とか単語ごとになってしまう。歌を歌う仕事とかはしていないので、ほとんど困っていないけど、例えばちゃんと歌詞を読んでない (なんとなく聞いているような) 歌について、歌詞のことを会話しようと思ってもまったくできないので、いい歌だよね〜みたいな会話を軽率にできないというのはありそう。

ワイワイ椅子

 id:hogashi です。 whywaita Advent Calendar 2020 - Adventar の 5日目の記事です。昨日の記事は id:tw1sm1k0 さんの whywaitaと那覇へ異常行動をしに行きたい2020冬 - Coyote vs Loadbalancer でした。数世代前の話題が通じる人としてこれからもよろしくお願いします(?)。

 id:whywaita さんといえば ISUCON 10 はお疲れ様でした。僕は予選で敗退しましたが参加して楽しみました、椅子の回転が面白かったです。

 椅子といえばこの間一緒に飲みに行きましたが、椅子が高くて大変でしたね、下りた瞬間に酔いが自覚されて便利でした。今度飲みに行くときは椅子の低いお店探しも 551 購入 RTA も再戦しましょう。

 というわけで椅子の話をします。僕は最近引っ越したのですが、椅子は持参しなかったのでしばらく床で生活していました。椅子を買いたいな〜と (引越し前) から思っていたのですが、かなり難航した様子をお伝えします。

 なんと 2018年あたりから椅子の好みについてインターネットに溢しています。まず座ったときに高すぎると足がつかなくて困りますね。そう思って低くすると、机に対して低すぎて、パソコンをカタカタすると肩が石のようになります。うまい塩梅がなかなか取れません。

 そして体質的に熱がこもりがちで、ふわふわ!座り心地抜群!みたいな椅子だと暑すぎてこれまた困ります。あと車酔いしやすいという体質が多分近いですが、回転する椅子やキャスターがついた動く椅子も、気分が悪くなったり落ち着かなかったりします。常に荷重移動に気をつける F1 レーサーみたいな気持ちになるわけですね。酔うけど。

 そうして行き着くのは学習椅子や北欧家具。実は、引っ越しの前数ヶ月くらいは実家に余っていた学習椅子に座っていたので、特に体がおかしくなるようなことはないかなということがわかっていました。なので高級なオフィスチェアのような椅子ではなくても、むしろ微動だにしないような、そして木製の椅子がよかろうと結論付けます。

f:id:hogashi:20201203230428j:plain
買いました

 そして今使っているのがこの椅子です。京都には家具屋が結構あり (家具屋のたち並ぶ通りなどもあります) 、そのうちのひとつで購入しました。実際に座って感触を確かめ、座面の高さと机の高さ (もうすでに机は買ってありました) との相性も大丈夫そうだということで決定。最近は在宅勤務がほとんどになり、これに座って毎日仕事もしています。

f:id:hogashi:20201203230418j:plain
座面の肖像

 座面の柄がかっこいいですね。ちょっと真ん中からずれている感じもなんとも味があります。 70年代の洋楽のなめらかにテンポが変わっていったりたまにリズムがずれたりするあの、 DTM のぴったりした音楽とはまた別の趣に似たものを感じます。

f:id:hogashi:20201203230408j:plain
夏の様子

 住んでいる部屋は、夏は日差しが差し込んでいい感じに見えることもありますが、それ以外の季節は差し込まないので黙々と作業をする感じになります。それでも今になるまで気に入って使えているので、かなり快適に使えているのだなとこの記事を書いていて思いました。というわけで、プラスチックと金属のくるくる回るし動くしふかふかの椅子とはまた別の良さを確かに持った木の回らないし動かないし硬い椅子、個人的にはとてもお気に入りです。

 ところで何も考えずに家具屋で買いましたが、家まで運んでもらったときに玄関を通るか若干心配になりました。皆さまは事前に 3辺の寸法を測り、ドアの幅と高さを通ることができるか確かめておきましょう。たしか 3辺のうち短い 2辺を選ぶとよいはずです。

 ありがとうございました。 whywaita Advent Calendar 2020、明日は id:neotaso さんです。

クリスマス映画それはダイ・ハード

 こんにちは、 id:hogashi です。 masawada Advent Calendar 2020 の 2日目に、ダイ・ハードをおすすめする記事です。

adventar.org

 ダイ・ハードとは映画で、 IMDb で見ると 1988年のものらしいです。多分有名な映画のはずなので皆さまもなんとなく知っていると思います。クリスマスのカリフォルニア州ロサンゼルスが舞台で、主人公がひとりで頑張る映画なので、 Stay Home で Keep Distance な今年のクリスマスにぴったりですね、ドキューンバキューンな感じなので音の大きさには気をつけてください。

www.imdb.com

 僕は好きな曲や映画を繰り返し見聞きしまくるタイプなのですが、この映画はかなり好きでめちゃめちゃ見ています。大学生の頃はこれを流しながらレポートを書いたりしていました。この記事では、 id:masawada さんに関係するところをできるだけ見つけながら、ダイ・ハードを少しだけご紹介します。少しも知らずに見たいという人は今すぐ見ましょう。 Prime Video で 300円でレンタルできます (字幕もいい感じです)。僕はもちろん 1500円出して買ってあるのでいつでも見れます。

www.amazon.co.jp

 まず、とにかく細かい描写がたくさん散りばめられていて、大きな伏線も小さな思い出しもあるので、何回見ても発見があります。あと画面に映るものが自然でわざとらしすぎない。自然な流れで小物が登場したり次のシーンにつながったりします。近年のぱきぱきとした映画とは違い、ゆっくりどっしりしている雰囲気も、ぐぐっと没入できます。

 古いというところでいうと、最近の映画と比べると映像が古めかしいなと思うだろうと思います。演出も素朴な感じで、派手さがない部分もありますが、味があって個人的にはとても好きです。登場する小物などには近代に向かって進歩しつつあるテクノロジーが垣間見えます。たとえば冒頭のタッチパネル式の検索ツール。主人公ジョン・マクレーンは先端技術などには疎めなので、かわいい反応を示します。短いシーンですがお見逃しなく。

Die Hard -Expanded-

Die Hard -Expanded-

 あとは BGM が基本的にオーケストラ(でいいのかな)によるものなのも、緊張感があったり、なめらかに強弱がついたり、色々な表現があっていいな〜と思います。この点は masawada さん向け情報ですね。一回はスクリーンの前で実際に楽器を弾いている映画館で映画を見てみたい。

 もちろん後頭部も活躍します。さっと思いつくシーンでは、主人公が洗面所の端に数回後頭部をガンガンと当てたり、敵のひとりの後頭部が階段の踊り場にゴーンとなったり。 masawada さんのアイコンのようにコンピュータをカタカタ使うシーンもあります。

 極めつけはこのシーン。右側をふわっと見ていると、「W」「S」「WM」「D」と、なんとなく MASAWADA 感がありませんか? どんな意味があるのかは実際に見てみてください、最高のシーンです。

https://i.imgur.com/HYVjcPW.jpg

https://www.reddit.com/r/MovieDetails/comments/a9yj9u/in_die_hard_1988_john_mcclane_can_be_seen_holding/

 CM でダイ・ハードの宣伝がされるときなど、なぜか間抜けな描写をされがちなジョン・マクレーンですが、実際に映画を見ると、かなり頭の切れる敏腕刑事であることがわかります。加えて、いわゆるジョークなど口が回るタイプでもあるので、敵に対して喧嘩を売ってほころびを探したりすることもできる賢さも持ち合わせています。ところで、この映画は敵の首領も賢く、双方の作戦がどうなるのかが見ものです。

 ネタバレ MAX で感想言い合えたりすると楽しそうだなと思っていますが、身の回りでダイ・ハードめっちゃ見てるという人に会ったことがないので、この機にぜひ見てみてください。ありがとうございました。

 masawada Advent Calendar 2020 、明日は id:papix さんです。