nginx のインストールと設定

nginx

kobalab.net ではWebサーバに Apache を使用していましたが、今後WebSocketを使用したアプリを配置する可能性があることを考慮して、nginx に乗り換えました。Apacheで配信していたコンテンツは

  1. 静的コンテンツ (電脳麻将)
  2. CGIやSSIを使用したコンテンツ (トップページ*1XiuMai*2
  3. Node.js のサービスに連携するリバースプロキシ (LiuLian天鳳牌譜変換サーバ)

に分類できます。1 はnginxで直接配信、2 はnginxをリバースプロキシにしてApacheに連携*3、3 はnginxをリバースプロキシにして直接連携 としました。

*1:アクセスカウンタや新着情報はCGIの出力をSSIで取り込んでいる

*2:mod_perl で動作

*3:可能であればnginxで直接動作させたいが、気軽に雑なCGIが動かせる環境は残しておきたい

続きを読む

電脳麻将におけるMVCの実装

電脳麻将 は HTML5 + CSS3 + JavaScript で動作する SPA です。こういったアプリを実装する場合、現在は ReactVue を使って宣言的に書くのがあたりまえで、jQueryはオワコン といわれています。ですが電脳麻将はあえて jQuery を使って MVC に基づいて実装しています。その理由は jQueryでないと美しく実装できない と考えるからです。

続きを読む

npm モジュールのセキュリティアップデート(2)

GitHubに脆弱性警告が通知されていた。pug-code-gen を 2.0.2 → 2.0.3、pug を 2.0.2 → 3.0.1 にアップデートせよとのお達しである。

f:id:xlc:20210305011307p:plain:w360:right

pug を 2.0.2 → 3.0.1 にアップデートすれば pug-code-gen も 3.0.x にアップデートされるようなので、pug だけアップデートすればよさそうなのだが、この2つのモジュールを使っている pug-cli がアップデートされていない*1。こういうときは npm audit fix を使って package-lock.json を直すが定番だが、さすがにメジャーバージョンのアップデートは対応できない。

以前、npm モジュールのセキュリティアップデート - koba::blog のやり方で修復したことがあるのだが、これはどうやらたまたまうまくいっただけのようである。そこでネットを調べると package.json の resolutions を使って依存パッケージのバージョンを指定する - 30歳からのプログラミング というページを発見したので、これを参考にバージョンアップを試みた。

*1:1.0.0-alpha6 というなんともやる気のないバージョンのまま

続きを読む

天鳳鳳凰卓の牌の危険度表

現代麻雀技術論 - 押し引き論13.ベタオリ でも紹介されている有名な「牌の危険度表」の出典は『科学する麻雀』の東風荘のデータと思われるので、赤なし・クイタンなしの東風戦のケースであろう。では天鳳鳳凰卓の東南戦では?ということで実際に統計をとってみた。*1

集計対象は2019年の天鳳鳳凰卓東南戦 171,650半荘の全リーチ 1,300,316件*2。スジや見えている枚数の条件はリーチ宣言牌打牌直後。

*1:実際のところ、この危険度表は計算の元となる数値も計算方法も明らかでないので鵜呑みにできないと思っていた

*2:フリテンリーチと国士無双のリーチは除外

続きを読む

押し引きアルゴリズムの改善(3)

押し引きアルゴリズムの改善(2) - koba::blog で1シャンテンまでの押し引きを改善したので、今回はテンパイ時の押し引きを改善する。

  • ポンテン・チーテンをとる条件を変更
  • 超愚形ならオリるよう修正
  • 好形でないならリーチせず無スジは切らないよう修正

の3つが改善候補。

続きを読む