2021年01月の日記です

目次

01日 あけましておめでとうございます
08日 新年早々
14日 カセットポン
23日 100倍規模


あけましておめでとうございます  2021-01-01 17:34:42  料理

▲目次へ ⇒この記事のURL

あけましておめでとうございます

今年のおせち料理は大幅に手抜き。

親戚の集まりもやらないことにしたので、家族で食べられればいいだけだし。


昨年のうちに、業務スーパーで手頃な値段で売っている豚の角煮が、僕が作るのとあまり変わらないことを確認していた。

なので豚の角煮は買ってきたもの。


鶏ハムは作るつもりでいたら、2日前から仕込みをしないといけないのを忘れてた。

時短レシピを調べたら、最近は仕込み無しで作るレシピのほうが普通のようだ。

いつもと若干味わいは異なるが、別に構わない。


伊達巻。失敗して、一枚目を味付け無しで焼いてしまった。しかし、見た目は悪くない。

今日は、ちゃんと焼いた二枚目を食べたので、いつもどおり。


金団は、大成功。

ここ数年は長女次女が裏漉しをやってくれる。しかも、2度越しするので非常に舌触りなめらか。

そこに、今年はちゃんとクチナシも入れたし、甘さは控えめで栗と芋の甘さを活かした、非常に美味しいものとなった。

これは、市販品以上の出来だと自負する。


いくら。

毎年秋のうちに筋子から作るのだが、昨秋はコロナで外出を控えているうちに、買い逃してしまった。

ネットで冷凍物を買ったが、自分で作るより高いのに、自分で作るより味が落ちる。


味付け玉子。

大量にゆで卵をつくり、だし醤油ににんにくを入れたものにつけただけ。

だし醤油を濃縮のまま使ったら、少し塩辛かった。


松前漬け。毎年使う、市販キット。一応調理はするのだか、袋を開けて混ぜるだけ。

そこに、クリスマス前の安いうちに買っておいた冷凍数の子を混ぜた。


あとは市販品そのまま。

黒豆、膾、ままかり、昆布巻き、紅白かまぼこ、ワカサギの甘露煮、さくらんぼの練切り。




昨年末は、12月に入ってから少しづつ大掃除をすすめ、上に書いたように おせち も手抜きしたので、大晦日の夜にゆっくりできる余裕があった。


子供が小さい頃は、子育て優先で余裕がなく、深夜0時を過ぎてもおせち作ったりしてた。

ここ数年でも、紅白見ながらせわしなく掃除をしていて、ゆく年くる年が始まると、「タイムリミット」で打ち切っていた。


年越しのときくらいは、心穏やかでありたい。



▲目次へ ⇒この記事のURL

同じテーマの日記(最近の一覧)

料理

別年同日の日記

03年 謹賀新年

03年 -70度

05年 A Happy New...

06年 あけましておめでとうございます

13年 あけましておめでとうございます

15年 あけましておめでとうございます

16年 あけましておめでとうございます

17年 あけましておめでとうございます

18年 あけましておめでとうございます

19年 あけましておめでとうございます


申し訳ありませんが、現在意見投稿をできない状態にしています

新年早々  2021-01-08 12:40:37  その他

▲目次へ ⇒この記事のURL

政治的なことはあまり書かないことにしているが、歴史的転換点だと感じるのでメモ程度に。


昨夕、東京・神奈川・埼玉・千葉に対して、コロナウィルスの感染拡大に対する緊急事態宣言が出された。

昨年末から早く出すべきだと言われ続けていたものを、ゆっくりと調整しつつやっと「緊急に」出されたもの。


まぁ、経済のことなども考えるとすぐに出せなかったのは理解できるが、遅すぎた、かつ宣言に対する規制などが弱すぎる気がする。

吉と出るか凶と出るか。




昨日、アメリカでクーデーターまがいの事件があった。


昨年末の大統領選挙で、負けたトランプ大統領は負けを認めなかった。

その後も各所に圧力をかけ、今からでも再集計をすべきだ、そしてその時には自分が勝つだけの票が新たに見つかって当然だ、と言い続けていた。

(暗に不正を行うように示唆していた)


そして昨日、ついに最終結果が出される段になって、支持者に対して議会に向かって抗議を行うよう示唆。

暴徒となって議会が襲撃され、死者も出る結果になった。



クーデターというのは権力者に対して行うものなので、今回は「権力者が」指示したためにクーデターとは言わない。

しかし、権力を失いつつあるものが、権力を維持するために、次の権力者に対して武力行使に出たのだから、クーデターと考えてよいように思う。


トランプ大統領に対して弾劾裁判を起こしてすぐに罷免すべきだ、という声が、仲間である共和党からも出ているそうだ。

しかし、任期はあと12日。弾劾裁判は3週間かけて行うように法で定められているそうなので、間に合わない。


しかしこの暴挙に対して政府要人が次々辞職してしまったため、もはや政権は機能しない。

任期満了までの12日間、アメリカでは権力の空白が生まれることになる。




昨日、香港で民主派の政治家などが50人逮捕された。


「民主主義思想を持っている」という罪だ。何かをやったわけではない。

現在の中国では、考えただけで罪になる。


新年早々の中国本土のニュースとしては、アリババ(中国の大手ネットショップサイト)の創業者である、ジャック・マー氏が音信不通と明らかになった。


毎年欠かさず出席していた新年会に行かなかったことから疑念がもたれ、調べると昨年10月ごろから、行方不明だそうだ。


マー氏は、民主派で共産党を表立って批判していた。




年末ニュースとしては、2020年末をもって、イギリスはついに EU を離脱した。

4年前から離脱は決まっていたことだが、離脱後の処理などで合意できず、やっと合意に至ったのは12月25日だった。


(前日まで交渉は全くまとまってなかったので、クリスマス休暇に入る前に無理やりまとめた感じだった)



そのヨーロッパでは依然としてコロナウィルスが猛威を振るっている。

ワクチンの接種もやっと始まりつつあるが、効果のほどはまだ不明。

(治験は行っているが、期間がなくて十分では無い感じ)


感染性が高くなった変異株も現れた、と騒ぎになっているが、これもどの程度のものかよくわからない。




世界情勢が、安っぽいディストピア小説のようだ。

特に昨日は一日でいろいろなことが起こりすぎたので、メモ程度に記録しておくものである。




▲目次へ ⇒この記事のURL

同じテーマの日記(最近の一覧)

その他

別年同日の日記

15年 ジョン・モークリーの命日(1980)

17年 プログラマーの技術力


申し訳ありませんが、現在意見投稿をできない状態にしています

カセットポン  2021-01-14 15:49:33  その他

▲目次へ ⇒この記事のURL

割とどうでもよい話なのだけど。


今朝、NHK ニュースを見ていたら、タイのサトウキビ栽培の話をしていた。


サトウキビは収穫時に尖った葉がかなり邪魔で、茎の部分は十分水分を含んでいるため、火をつけてしまうと葉だけが燃えて、収穫が楽になるのだそうだ。

でも、これで出る煙が公害で、社会問題化しているらしい。


そこで日本の大手砂糖メーカーが技術提携して、社会貢献している…という話。


このニュースで気になったのは、内容ではなくて出てきた会社。


インタビューに答えた会社員の所属が「砂糖メーカー カセットポン社」となっていたのだ。




カセットポン…PC-6001 を思い出す。



ジャンケンポン、カセットポン

というキャッチコピーで売り出した 8bit PC だ。


当時は家庭用にパソコンを売り出した黎明期。

第一陣となった PC-8001 / MZ-80 あたりは、カセットテープからプログラムを読み込む必要があり、非常に遅かった。


ちょっと使うのにいちいち待たされるのでは家庭用に向かない、というので、プログラムを ROM カートリッジに収めて、挿せばすぐ使える、というのが、家庭用への普及には必要だと考えられていた。


PC-6001 は、その最初期のものだが、のちには IBM Jr. や MSX など、カートリッジを搭載して家庭向けの普及を狙った機種は多い。


(もっとも、ATARI 社が出したゲーム機が ROM カートリッジのアイディアの先駆だろう。それを PC にも取り入れよう、という動きは世界的なものだった)


ちなみに、今では「カートリッジ」と呼ばれるが、当時は「カセット」と呼ばれた。

カセットテープはメディアとして普及していたので、簡単に交換できるものを「カセット」と呼んだのだ。


(今でも、カセット式ガスコンロとかある)




話を戻す。


ニュースに出てきた「カセットポン社」の名前を見て、僕は上のように交換式の何かを連想したのだ。


何で砂糖メーカーでカセットポン?

元は名前にふさわしい別の事業をやっていたが、仕事の幅を広げて砂糖も作っている?


気になったので調べたら、カセットポン社は三井物産と、子会社の三井製糖が共同出資するタイの現地法人だった。

三井製糖、と書いてもよくわからないかもしれないが「スプーン印」と書いたら誰もが知っているだろう。



で、答えは三井製糖の CSR 報告書に書いてあった。

(CSR 報告書とは、企業として社会的にどのような貢献を行っているかの情報をまとめたもの)


タイの言葉で、カセット (เกษตร:Kaset) は農地ポン (ผล:phol) は実り、利益、収穫を意味するそうだ。

(CSR報告書7ページ右下)



そんなわけで、「なぜ砂糖の会社でカセットポン?」と疑問に思っていたのだが、農業法人らしい非常に良い名前だった。



しかし、日本語的にも非常に面白かったので、ここに記しておく次第。




▲目次へ ⇒この記事のURL

同じテーマの日記(最近の一覧)

その他

別年同日の日記

03年 libSDL

04年 アンケート

11年 おさんぽ

16年 トーマス・J・ワトソン 誕生日(1914)

17年 WaveRunner

20年 忙しい


申し訳ありませんが、現在意見投稿をできない状態にしています

100倍規模  2021-01-23 12:02:32  コンピュータ

▲目次へ ⇒この記事のURL

お仕事の話。ほぼ愚痴。


100名程度の使用を想定して作ったシステムがあり、開発をお手伝いしている。

ありがたいことに人気が出て、人気が出ると想定外の使われ方をし始める。


特に、多人数で使いたいという要望が多く、1000人規模でも使えるように1年ほど前に大規模改修を行っている。

僕はこの改修の途中から参加させていただいた形だが、システムのスループットは上がり、1000名でも使えるようにはなった。


この際に、さらに人数を増やすこともできるような設計にはしていたが、それは「設計」だけで、実際には対応できていなかった。



それが、今回1万人で使いたいという依頼が来て…

いや、依頼はしばらく前から来ていたのだ。というか、依頼は1万人とも限定していなかった。

最大5万人くらいということだったが、それはさすがに難しそうなので、1万人に制限してもらったのだ。




システムはいくつかのパーツに分かれているが、サーバー部分は改修の際に、node.js で作り替えられていた。

node.js はサーバー側で動作する javascript 環境だ。


細かな話を書くと長くなるが、もともと javascript はブラウザ向けの技術だった。

そのため、非常に癖の強い特徴を持つ。


一番重要なのが「ノンブロッキング」であるということだ。

ブラウザはユーザーが操作するものなので、その操作を阻害…「ブロック」してはならない。

これがノンブロッキングという思想。


言語が動いているときは、ユーザーの操作を受け付けられない。

そう仮定すると、ユーザーの操作を阻害しないため、言語は無駄な実行時間をかけてはならない。


とはいえ、普通のプログラム言語にはたいてい「何かを待つ」処理が入るものだ。

ファイルを読んだり、ネットで通信をすると、CPU よりもはるかに遅いディスク装置やネットワークのデータを待つ。

プログラムをしていると、ごく当たり前のことだ。


javascript では、これらのことは「行えない」。

待たせてはならない、という設計思想だからだ。


とはいえ、ディスクを読んだり通信をしたり、というのは当たり前のことで、もちろんできる。

どうやるかというと、待つのではなく、いったん終了してしまうのだ。


「通信してね」って頼んだら、終了する。

そして、通信が終わると、「通信終わったよ」ともう一度処理を起動してもらう。


javascript では、一事が万事この調子。プログラムを組んでいると、非常に組みづらい。

まぁ、最近では昔より環境が整えられ、かなりマシになったのだけど。



そして、あえてこの使いにくい環境をサーバーで使うと、「待ち時間のない」プログラム環境を実現できる。

待ち時間がないということは、常にプログラムが動いているし、リクエストに応えられるということだ。


従来…というとちょっと古いのだが、Wordpress などに使われる PHP では、1秒間にせいぜい 10リクエスト

くらいしか答えられない。


でも、同じことを node.js で実装すると、1000リクエストくらいは答えられるのだ。


#PHP はインタプリタだが、node.js は即時コンパイルだ、とか、PHP はプロセスフォークで動く Apache 上で動作するが、node.js はシングルプロセスなのでタスクスイッチのオーバーヘッドがないとか、他の要因も多分にあるのだけど。




それでも期待できるのは 1000人レベルだ。

大規模改修で node.js を使って 1000人規模に対応した、というのがこの段階。


今回1万人規模のリクエストなので、node.js をクラスタ化して対応することにした。


node.js は、シングルプロセスで動作する。

たった一つのプログラムで、1000以上の接続に対応するのだ。


しかし、これは CPU がマルチコアだったとしても、1コアしか使わないという意味でもある。

CPU のコアの数だけプロセスを増やせば、理論上はもっと多くの接続を処理できる。


もちろん、そのための制約はいろいろとあるのだが、最初から「マルチプロセスで動かすことができるように」という設計をしていた。


そして、pm2 という node.js 対応のプロセス管理ツールを使うと、プログラムは無改造のまま、マルチプロセス化できる。


(通常、プロセスが増えると、それぞれが別の通信ポートなどを用意しないといけなくなる。

 通信ポートが増えれば、アクセスするクライアント側もそれに対応しなくてはならなくなる。

 しかし、pm2 は代表して1つの通信ポートを作り、配下のプロセスのポートに適切にデータを流してくれるので、外部から見るとそれまでのプログラムと何ら変わらないように見える)


というわけで、処理性能は何倍かに跳ね上がった。



…でももちろん、話はそんなに単純ではなかった。




接続が増えたら、当たり前だがそれらの接続ごとに、データを収めた DB へのアクセスが発生する。

1プロセスで 1000 人程度をさばいているときには問題にならなかったが、1万人規模になると接続ができなくなった。


DB の接続数の上限設定があるのだ。これは、 DB の設定を書き換えて解消する。

これに伴い、適切なワークメモリの割り当てなども変える必要があるが、とにかく設定した。


DB が接続を受け付けられるようになっても、その接続のための通信ポートが十分作れない。

OS 側に、通信ポートをいくつ作れるか、という設定があるのだ。

それらも設定する必要がある。


UNIX では、すべてのリソースがファイルとして扱われる。

通信ポートも1種のファイルだ。そして、UNIX には、プロセスごとに開けるファイル数の制限がある。

この制限も増やす必要がある。


100 人程度なら問題なし、1000人でも大丈夫だったとしても、1万人規模になるとそれまで気にしていなかった設定が問題になるので、問題発生のたびに何が悪いのか調べ、設定をチューニングする必要が出る。


それまでは問題にならなかった DB の Query が、突如として slow query になる、というのもあった。

DB へのアクセスが激しすぎると、特に問題がなかった部分がボトルネックになりだすのだ。


…これらは、上に書いたような順序で、理路整然と起こったわけではない。

とにかく不具合が続出し、原因を切り分け、考えられる要素をひとつづつ潰していく必要があった。


上に書いたのは、「結果としてそういうことだった」というだけで、原因がわからないので見当違いの設定に手を出して、何も変わらないので元に戻す、というようなこともやっている。




問題はサーバー側だけではなかった。


1万人規模、と書いたが、その規模の人たちがサーバーに接続し、操作した結果を集計して表示する画面がある。

普通の WEB ページとして作られているので、PC さえあればインストール作業などなしで表示できる。


この画面自体は、サーバーと接続しているだけだ。接続が増えるようなことは無い。

だから特に問題は出ないだろうと思っていたら、1万人分…1人についてのデータが複数あるため、数万件のデータになると通信に支障が出た。


特に、何らかの不具合が起こって画面のリロード…と考えたとき、数万件のデータ再送信はそれだけで1分程度の時間がかかる。


通信したデータを、ローカルにキャッシュして持つように改良した。

再起動が行われた際は、まずキャッシュからデータを読み込み、続きのデータの送信をサーバーに依頼する。

5秒程度で表示が行えるようになった。



この表示も1万件あると遅くなった。

全部を表示したいのだが、ただ1万行の HTML というだけで、重くてスクロールもままならないのだ。


これはプログラムテクニックで乗り切った

どこかに詳細なテクニック紹介をしたいのだけど、忙しくて概要説明だけ行ったままだ。



100人を想定して作ったものを、1万人向けに提供する…となると、思わぬことがいろいろと発生する。



▲目次へ ⇒この記事のURL

同じテーマの日記(最近の一覧)

コンピュータ

別年同日の日記

12年 ゲームボーイの CPU

15年 アプリケーションサーバとしてのQNAP

15年 宮永好道 命日(1993)

16年 iOSでtextのコピー・ペーストができないバグの回避

18年 サターンポリゴンのゆがみ


申し訳ありませんが、現在意見投稿をできない状態にしています


戻る
トップページへ

-- share --

0000

-- follow --




- Reverse Link -