@kyanny's blog

My thoughts, my life. Views/opinions are my own.

How to make a simple HTTP server in Deno

Deno implements a native HTTP server function.

https://deno.land/manual/examples/http_server shows a complete example.

However reading the request body at once in string wasn't clear, which I found a little tricky for the TypeScript/Deno newbie.

gist.github.com


Python3: http.server のみでデバッグ用の HTTP サーバを作る - @kyanny's blogを Deno で書き直した版。こういうのこそ外部モジュールの扱いをシームレスにできる Deno の出番、と思ったらビルトインの機能が豊富なので何もインポートせずに書けた。

リクエストボディを全部文字列として読みたいという単純なことのやり方がわからなくて TypeScript のエラーを見ても理解できず一時間くらい時間を費やした。Reader.read() がデータを直接返さず、さらに .value プロパティにアクセスする必要がある、ということになかなか気づけなかった。

Python では list.append なのに JavaScript では array.push なのも混乱した。慣れの問題に過ぎないのだが、慣れるまでが大変ストレスだ。Perl を書いていた頃に Ruby に何度も挑戦したがそういう細かい書き味(API)の違いがストレスで、結局仕事で Ruby を書くようになるまで Ruby を書けるようにならなかったことを思い出す。

Bizmates Program: Level 2 Rank C Lesson 5: Going over the agenda

朗らか、という形容が似合う男性トレーナーと。レッスン途中に地震があって緊急地震速報の音が鳴ったりしてバタバタした。咄嗟のことだったけど、「地震だ、ちょっと待ってて」みたいな説明ができた。

Lesson 5 の Example まで終わり、次は Biz Tips から。この人は「他にはどういう言い方がある?」とか発展的な質問をしてくる傾向があり、Lesson 4 の Try はその辺がちょっと難しかったけど、うまく回答できない場合でもちゃんと「そういう場合はね・・」とチャットに書きながら教えてくれるのでありがたい。Act では練習のために、チャットで教えてもらったフレーズをなるべく使うようにした。

  • Would you like to have a seat right here? (no seating arrangement) / 席順が決まってる場合は Please have a seat.. を使い、席順が決まってない場合は Would you like to have a seat..? を使う、らしい。
  • Please help yourselves to some drinks in our coffee bar. / help yourself! iOS アプリの Real 英会話で発音チェックが激ムズだったやつだ。
  • How's the room temperature for you?
  • Would you like me to turn up/turn down the AC? 
  • AC= air-conditioner
  • Please try to relax while waiting for the meeting to start. / Please relax はどう?と聞いたら返ってきたフレーズ。言われなかったけど Please relax だと命令っぽくなるのかもな。なので try to relax がいいと。
  • Please make yourself feel at home. / 近頃はこれも定番フレーズだとのこと。会社も社内の雰囲気をアットホームにするようになっているから。ただしこう言われても実際にゲストが自宅のように感じることはないけどね、だって会社だもの、と。確かにそりゃそうだ。こういうちょっとした口ぶりを聞いてても、すんなり入ってきて心地よいのが相性の良さなのかなと思う。

Doom Emacs で org-mode のファイルを開くと textlint のエラーが表示される

  • npm i -g textlint してある
  • 該当 .org ファイルのあるディレクトリ内に .textlintrc がない

という条件のときに↓のようになった。

f:id:a666666:20211007015034p:plain

エラーメッセージは textlint からくるもの。

== No rules found, textlint hasn’t done anything ==

Possible reasons:
* Your textlint config file has no rules.
* You have no config file and you aren’t passing rules via command line.
* Your textlint config has a syntax error.

=> How to set up rules?
https://github.com/textlint/textlint/blob/master/docs/configuring.md

どうやら flycheck が内部で textlint を検知して実行するが .textlintrc がないのでエラーが出る、という状態らしい。

Doom Emacs 的には ~/.doom.d/init.el の :checkers セクション内で syntax が有効化されており、それによって flycheck がデフォルトでロードされるようになっている。

このディレクトリ内のファイルに対しては textlint をかけたくない(かける必要がない)ので、適当な .textlintrc を置くのは避けたい(textlint --init で空の .textlintrc を作っても、ルールを一つ以上設定しないと同じエラーが出続けるため)。

flycheck の設定でどうにかすべきだが、やり方がわからないので、Doom Emacs の個人設定用ファイル ~/.doom.d/init.el で :checkers の syntax をコメントアウトして ~/.emacs.d/bin/doom sync し、flycheck ごと無効化した。Emacs をコーディングに使っていないので取れる乱暴な手ではある。

(doom! :input

       :checkers
       ;syntax              ; tasing you for every semicolon you forget

)

Bizmates Program: Level 2 Rank C Lesson 4: Making your guest feel comfortable

陽気で早口な男性トレーナーと。二回目。相変わらず早口なのでスモールトークをそれなりにしてもいいペースで進んだ。Lesson 4 の Biz Tips まで終わり、次は Bizmates Style から。彼は結構発音を直してくれるタイプ。

Biz Tips を読み終わって残り 40 秒くらいあったけど、Bizmates Style には進まずここで wrap up して続きは次回のレッスンで、となった。割と時間オーバー気味でも進めるトレーナーが多い印象なので、珍しい気がしたけど、もしかしたらおれが話長いのを察して時間オーバーを防ぐために早めに切り上げたのかもしれない(他のトレーナーは切り上げ損ねて・読み誤って時間オーバーで辟易としてたりして)。

オフィス案内とかのレッスンが続くが、今の会社のオフィスには一度も行ったことがないので、かわりに前の会社の時の話をしている。key people in your company とかも、今の会社じゃ社歴も浅ければ地理的にも組織図的にも末端というか最果てで、誰が妥当なのか名前も挙げられない。長く勤めて色々知ってる会社があって本当によかった。その会社も今はもうないが。

  • Usually, my wife cooks for us.
  • Nabe is a type of STEW.
  • He did a great job in keeping the conversation going.
  • Luke felt that he was treated with a lot of importance and trust.
  • In the lobby, there's a large entrance, and in the corner there's a coffee shop.
  • The coffee shop is almost always full.
  • One of my primary responsibilities was hiring new software engineers in my department.
  • Compete WITH our competitors
  • Sometimes we take a break there.
  • I can treat you to a cup of coffee.
  • Over there is our HR department.
  • He could be more FRIENDLY towards Luke.