特になし

タイピング日本一を決める大会「REALFORCE TYPING CHAMPIONSHIP 2024」を日テレスタジオで観戦してきた。日を置くと書けなくなってしまうので最速感想。ネタバレあり。

去年までの観戦記:RTC2017RTC2018RTC2019RTC2023

配信:YoutubeTwitch

全般

今回もありがたいことにWeather Typingを使用頂けるとのことで、協力させてもらった。お話を聞いたのも割と直前だったので、依頼を受けて打鍵音を修正したくらい。現地ではあまり分からなかったけど、配信だと赤側の音と青側の音が少し左右に振られている。どのくらいパンするとよいのか分からなかったので、どんな感じですかね。

タイパー視点での感想

まず会場が広い。去年から観客席がかなり大きくなっていた。去年も感じたが、知ってる顔の割合が少なくなっていて、身内の大会から一般の大会に成長している感があっていい。

内容としては、いったんの世代交代みたいなところが見られた。上位選手はほぼ全員互角だったので実際にはそこまで差はないんだけど、決勝戦常連のmiri選手とmuller選手に勝ったくわな選手対三山羊選手の決勝戦、さらにかな入力の初優勝と、これまでの歴史を塗り替えた感がある。かなについては、正直このルールでかなが優勝できると思ってなかった*ので、かなりの衝撃。

*Weather Typingでは、かなの1打鍵はローマ時の1.5倍の価値としている。例えばかなの「さ」とローマ字で「sa」を比べると同じ1打鍵でも2倍の差があり、Weather Typingのワード全体の統計を取ると平均1.5倍。それを前提としたランキングでもかなが上位。なんだけど、かな入力はキーボード4段打ちだったり、打鍵数が少ない影響で正確性を回復しづらいので、緊張感のあるオフライン大会かつ正確性重視ルールではかなり不利になる。

その上で今回、三山羊選手 vs muller選手のかな対決で1100kpmとか出ていたけど、こんな速度で正確に打たれるとさすがにローマ字は勝てないのか。

てことでいったんは世代交代に見えるけど、次回はレジェンドの恐ろしさを魅せてくれるのか、さらに新しい歴史になるのか、楽しみなところ。

開発視点での感想

今回、現地観戦しつつ少し運営側を見せて頂いた。いつも以上にトラブルに怯えつつもいろいろと参考になった。

とりあえず現地で気になったところだけ配信で確認。

一回戦 miri選手 vs riafi選手。riafi選手が最初の2ワードを打てなかったことがあったけど、配信を見る感じ、ウィンドウのフォーカスが外れてた感じかな。ミ田キーを押してしまって打てないというのも発生しているようなので、何かしら対策ができないか。

一回戦 セレナーデ☆ゆうき選手 vs muller選手。最後ラグで試合終了と勘違いしたというところ。配信(観戦PC)ではラグっぽくは見えなかったので、対戦PC側でラグがあった感じだろうか。1回戦最後の試合だったので、連続稼働で重くなる現象がまだ残っているのかな。ちなみに大会後にセレナーデ☆ゆうき選手からソフトのせいにしてすみませんと謝られてしまった。面白いだけでなく人間性も素晴らしい方ですね。

全体

今回からトロフィー(?)に優勝者の名前を刻んでいくとのこと。ということは来年度以降もある、という宣言と受け止めました(私はその辺りは聞いてないので勝手に言ってるだけ)。

大会も身内の大会から一般化して、新しい人が優勝して、今後も楽しみ。な一方で、前回も少し書いたけど、Weather Typingは来月で23周年という古いソフト。大学生がコンセプトの重要性も分からないまま適当に「Weather」って付けてもはや謎の名前になっているくらいのソフトなわけで、タイピングe-sportsのポテンシャルを活かせる新しいソフトウェアの必要性はやっぱり感じる。私も新しいタイピングソフトを作ってたりはするけど、100連勤とかの合間に進めるのは難しくて、誰か作りませんかね。

ALL ABOUT マイコンBASICマガジンⅢ申込み。12:00に待機してチケットページを開いてみたが混雑中が続いてなかなか取れず。何度かリトライした結果、12:07くらいにようやくつながって、S席のちょうど真ん中くらいが取れた。

S席だけでも500席近くあるのでしばらくは大丈夫かと思ったけどその後数時間でS席と2A席が売り切れ。もう半分近く埋まったってことかな。締切5/18までなのでどうぞ。

去年からベーマガイベントが復活するという情報があったが、正式に発表された。第一回が秋葉原で500人規模、第二回が有楽町で1000人規模、第二回のSP版が大阪で300人規模、今回は蒲田で1500人規模、かな? 段々大きくなっていってるのがすごい。

ここ2年くらい職業の方で組み込みの勉強が手一杯で、本業の開発が全く進んでいない。ただ、そろそろ組み込みの方も多少知識が追いついてきた感があるので、今回のベーマガイベントで開発モチベーションを上げられるといいなあ。まずは国会図書館でベーマガを読みに、行ける時間があるかなあ。

今年も「REALFORCE TYPING CHAMPIONSHIP 2024」が開催される。予選が終わって3/9に日テレの会場にて本戦。私も少しe-typingにトライしたけど予選突破はできず。ていうか1000位にも入れないけど…

今年もWeather Typingとして協力させて頂くことになっていてありがたい。去年の動画を見直しておかないと。

進捗なし。STM32の評価ボードをいくつか買って試している。

進捗はなし。ほぼ4ヶ月ぶりの休日になるけど勉強しないといけないことがたくさんあって何もできない予定。

変わらず忙しすぎてDenasu関連の進捗なし。

必要があってOpenAIを使おうとしたら、Creditの試用期限が切れてたので課金してみた。とりあえず$100課金してちょっと遊んでみたけど1円未満だったので結構遊べそう。

以下はWeatherTyping用の問題文を作ってもらったもの。もう少し長めに生成してもらいたいんだけど、ちょっと試した感じ難しかった。API呼び出しできるので、ウェザタイから呼び出してワード生成を任せることもできる。やるとしたらワードを作る度にお金がかかってしまうので、有償オプションになるのかな。ユーザのOpenAIトークンを入力してもらえばいいかも知れないけど、そういうモデルにしてるサービスってあるのかな。

ちなみにワードサーバの形で実装すれば誰でもChatGPT使用のウェザタイワードサーバを作成できるので、プロンプトエンジニアの方々、是非よろしくお願いします。

ずっと時間ないのでDenasu関連は何も進捗なし。

先月PCを買い換えたけど旧PCも普通に使えるスペックなので、Ubuntuを入れてLinux PCにした。通常PCにはMicrosoftの署名が入っていて、Microsoft署名以外のOSは起動できないが、Ubuntuの1stステージブートローダ(Shim)はMicrosoft署名がされているので問題なし。みたいなSecureBootとかSELinuxとかの勉強中。

Cドライブの容量が足りなくなりそうになったので新しいPCを衝動買い。

2018年からSurface Book 2を使っていてもう5年だけど、特に不満点はないのでそのまま後継機のSurface Laptop Studioの一番いいやつにした。CPUが第8世代->第11世代、メモリが16->32GB、SSDが512GB->2TB、GPUがGeForce GTX 1060->GeForce RTX 3050 Ti。全体的に性能は2倍くらいか。ヨドバで在庫セールしてたので30万円。会社補助とヨドバポイント還元を合わせると25万円くらいあるので実質5万円。

来週あたりMicrosoftから次の機種が発表される噂があるけど、日本で発売されるのは年度末とかになるだろうし、40万超えるだろうしってことで。

ゲーミングノートやデスクトップだともっといい性能で安いのがあると思うけど、例えば会社で使っているDELLノートは爆音と強風がすごい。それに比べてSurfaceシリーズは負荷をかけてもファンの音がしないのがいい。あとSurface Dockとか純正USB-Cディスプレイ変換とかペンとかも流用できるし。

まだセットアップ中だけど、Surface Book 2からの移行で違和感は何もなし。タブレット変形ができるので液タブとして使えるかも? Surface Book 2は画面取り外しができたんだけど、DockやらGPUやらが切り離されてしまうのでタブレットとしては使ったことがない。Surface Laptop Studioは手前に倒せるようになっているので、メインディスプレイと液タブみたいな形で自然に使えそう。

月󠄃記。とりあえずビルドエラーはなくなってセキュリティモジュールから作成・自動テストを作っている。やっぱり数年がかりになりそう。

今月の日記ノルマ。といっても今月もほぼ無休だったので進捗はあまりない。とりあえずウェザタイのUnity化のため、UI以外の部分をDLLにまとめて共通化を進めている。こうしておけばUI以外はTyping Fieldとも同じソースを使えるのでよさそう。現状ビルドエラーが大量に出ている状態なので一つ一つ直さないと。

月1回の日記ノルマを消化しないと。

Typing Field開発は進めたいんだけど、その前にWeather Typingロビーやランキングのセキュア化をやらないといけなくて、そうするとWeather Typing自体の作り直しが結構発生する。ついでに前々から話がでていたXamarin Formsの廃止と.NET MAUI移行の話もあって、どうせならWeather Typing 5.0にするかな、と思っているところ。

Typing FieldはUnityで作っているが、Xamarin Formsとコードベースがかなり違うので別々のソースになっている。これだとメンテもしきれないので統一したいというものある。ただ、.NET MAUIはXamarin Formsの後継なので、Xamarin Forms同様誰も使ってる人がいなくて大量のバグに悩まされる可能性が高い。ので、Unityかな。

Unityに移行するとなると、多少安定していた今のバージョンからまたしばらく不安定なバージョンが続くのが懸案だけど、自動テストを駆使してなんとか安定させたいところ。

ロードマップとしては以下なんだけど、あと10年くらいかかりそう。

  1. ロビーのセキュア化:完了
  2. ロビーの自動テスト:完了
  3. ランキングのセキュア化:完了
  4. ランキングの自動テスト:作業中
  5. Weather Typingのセキュア化
  6. ベース部分をUnityへ移植
  7. ベース部分の自動テスト
  8. Weather Typing UIをUnityで作り直し -> WT 5.0リリース
  9. Typing Field UI作成
  10. Typing Fieldのゲームデザインやり直し
  11. Typing Fieldのアセット作り
  12. Typing Field実装 -> TF 1.0リリース

まあ、常に開発していたいので、これくらい大変じゃないとやる気しないよね、ってことで。

ゴールデンウィーク終了。いろいろ必要だったのでずっとモダンな開発プロセスを勉強してた。

まず「単体テストの考え方/使い方」。以前AppiumでWeather TypingのUIテスト自動化を作って、ほとんどのテストをUIからテストするようにしてたんだけど、Appium自体が既に使い物にならなくなってるし、ちょっと機能エンハンスするだけでテストに通らなくなってしまうので諦めていた。が、この本を読むとUIテストで完全に自動テストするのはアンチパターンぽいことが分かった。もっとボトムアップに、外部仕様だけをテストするようにすればいいのか。とりあえずテストしやすいロビーやランキングからテストコードを作っているところ。

「ボトムアップ」というのは、UIは一番上位レベルのテストなので、UI仕様がちょっと変わるとテストが壊れるし、フォーカスを合わせたりスクロールしたりでとにかく動作が不安定で時間もかかる。なので、全てのケースをUIでテストするのは効率が悪すぎる。そうではなく、各クラスの動作を確認できる箇所は各クラスで確認して、その結果を前提にして上位のクラスの動作を確認して、UIのテストはUIのテストだけをすべき。そのためには実装もテストしやすいように作る必要があって、ロジックとUIを分離して、ロジックはロジックだけで高速な自動テストができるようにし、UIは単なる表示だけにして中身はロジックを呼び出すようにする。

「外部仕様だけ」というのは、内部仕様を自動テストに入れてしまうとすぐテストが壊れるので、将来的に変更のされない、というかそこを変更し直すなら当然テストコードも変更するよね、というものだけをテストする。つまり一つ上位や同じ階層向けのI/Fをテストする。こうしておくと内部実装の細かいところを変えてもテストコードは変わらないし、API名が変わるならリファクタリング機能で一括で変わるし、新しく機能を作ったならそこだけテストを追加すればいい。

で、この本もそうだけど、manningのこのシリーズの本いいですよね。「セキュア・バイ・デザイン」もすごいよかったし。


次にGitHubとCI/CD。Git自体はずっと使っているけど、そろそろCI/CD周りを勉強しないとついていけなくなっているので「Accelerate DevOps with GitHub」を読みつついろいろ試してみた。まだPart4で80%くらいまでしか読めてないけど。GitHub Actionでかなりいろんなことができて、ビルド、単体テスト、静的解析、クラウドへのコンテナのデプロイ、脆弱性スキャンみたいなことまで自動でできて、チケット管理とかクロスチェックとか、修正しないとビルド失敗も可能。なるほど、こういう風に使うのか。

機能をフルに使うにはパブリックレポジトリか有償になってしまうので、今のウェザタイで積極的に使うのは難しいんだけど、セキュリティ課題が解決したらいっそOSSにしてしまう手もある。


てことでセキュリティ。最近ウェザタイのロビーも末期になってきて、セキュリティをちゃんと実装するか廃止するか、って感じになっている。てことでTyping Fieldで実装しているセキュリティ機能をウェザタイに移植中。主にはTLS化とFIDOぽい認証。ここまでいけばロジックを守る必要はないので、あとクライアントの秘密鍵さえちゃんと守れれば、ランキングのチートも難しくなってOSSにしてもよさそうなんだけど、HSMを前提にするわけにはいかず、TPM使うのも大変。オンラインゲームでOSSにしてるようなものってあるのかなあ。というかブラウザゲームはOSSみたいなものだけど、チート対策ってどうしているのか。通信の保護をやぶるよりキーボードをシミュレーションする方が手っ取り早いからあんまり問題にならないのかなあ。

Azureセキュリティテクノロジ(AZ-500)に合格してきた。これでひとまずの目標、AWS/Azureのアソシエイト/セキュリティ取得完了。そんなに意味はないけど次受けるならDevかなあ。

てことでAZ-500だけど、今までで一番きつかった。GWにもちこしたくなかったので勉強期間は10日間。一冊しかない教本「最短突破 Microsoft Azureセキュリティ テクノロジ[AZ-500]合格教本」とUdemyの「AZ-500 Azure Security Engineer Associate – Practice Tests」114問をやったけど、さすがに問題数が足りなくてXamtopicsというよく分からないサイトで150問追加。それでも781/700点でなんとか合格。

内容だけど、Azure Administrator以上に仕様がカオス。AzureのロールとAzure ADのロールが無関係なのから始まって、なぜそこにその設定があるの、とか意味不明な仕様が大量にあって、過去と現在の仕様のどっちを聞いてるのか分からず存在しない仕様が正解だったりして、覚えてもしょうがないことが問題に出てくる。今回、Udemyで納得のいかない回答があり、問題文を検索してXamtopicsにたどり着いたのだが、ここの面白いところはいろんな人が問題にコメントを残せること。模範解答は大半答えが間違っていて、多数決の回答が載っている。コメントによる議論を見ると、これは問題が古いとか、意見が真っ二つに割れたり、問題としてもひどい。てことで、日本語の試験対策がほとんどないのもあって、少なくとも英語が苦労なく読めないと合格は難しそう。

そういえばGW前の金曜午後なんて混んでないだろうと思って予約したんだけど、大量のスーツの人がいた。新人研修の一環なのかな。

AWSの試験から少し間が空いたが、Azure Administrator(AZ-104)を受験。休日は仕事なので、どうせなら予約の取りやすい平日に受験したんだけど、結構人はいた。結果は870点で合格。

AzureはMSDNのサブスクリプションでクレジットがあるのでちょくちょくいじっていたが、真面目に勉強してみた。ただ、AWS同様、これは全体を知るだけの通過点で本命はセキュリティ(AZ-500)。

勉強期間は2週間くらいで、内容は教科書を読み込んで付属の模擬試験をやったのと、Udemyの評価が高かったAZ-104 Microsoft Azure Administrator Exam Practice Tests NEWという模擬試験を全6回中5回分やったくらい。AWSと比べた感じAzureは仕様が直交しないというか、出所不明な制約が結構あって、例外をたくさん覚えるのがきつい。

しかし、模擬試験と言いつつ本番とほぼ同じ問題がほとんどというのはどういうことなんだろう。何度も受けてちょっとずつ覚えて問題を書きおこしてるのかなあ。本来、幅広く勉強して、どんな問題でも解けるのが正しそうだけど、そういう独自問題の模擬試験があったとしてもユーザの評価が低くなって、本番と同じ問題を暗記するだけの模擬試験の方がユーザの評価が高くなるというのが仕組みとしては微妙。まあ資格試験なんて一応一通り勉強しましたよ的な意味しかないのでいいのか。

2ヶ月ぶりに普通に休みを取ったので、学生時代から20年以上通った八重洲ブックセンターの閉店前巡礼に行ってきた。専門書が目的なのでほぼメガ書店にしか行かないのだが、どんどん閉店していきますね。棚がスカスカなのが寂しい。

それはそれとして散歩してたら何故かアキバにいて、何故か千石電商で7色電子ペーパーモジュール「WaveShare 19283 4.01inch ACeP 7-Color E-Paper E-Ink Display HAT」を買っていた。スーパーのタグとかで赤が使われていて興味深かったのだがこれは7色。早速ラズパイに接続して我らがヨドバシカメラのお姿を表示してみた。表示までにチカチカして結構時間はかかるものの、表示されたもの自体は割と綺麗。電子ペーパーなので、当然電源を抜いてもこのまま残る。Kindleみたいな実用的な速度になるのはまだまだ先ですね。何かいい使い道あるかなあ。

しばらく「なれる!SE」シリーズを読んでいたのだが、全巻読み終わったので。Kindle Unlimitedでほぼ全巻読めるのでお徳。

これはラノベ?なんだけど内容がすごいリアルで読むのに体力がいる。騙されてネットワークインフラエンジニアになり、PM、提案、管理職などをいろいろ経験していくお話。協力社員が協力しないとか、顧客先常駐して無茶振りされるとか、あるあるな状況になりながらもちょっとおかしな方法で解決していく。

で、最終巻、最後の議論。これがメインテーマだとしたら物語全体を見る目が変わってくる恐ろしい構成。日本のSIerは高度エンジニアをすぐマネージメントや事業戦略に就かせて代わりに素人を投入する。それはITのスキルが重要なんて誰も思っていないから。その結果素人しかいなくなって日本のIT業界は何も生み出せない。

と、まあよく言われていることだけどその通り。終身雇用で1つの会社に居続けるためにゼネラリストにならざるをえなくて、新卒一括採用だから素人を入れざるを得ない、と。それが嫌なら独立するか外資系にいくしかないと。どっちにしようかなあ。

タイピング日本一を決める大会「REALFORCE TYPING CHAMPIONSHIP 2023」、3/12に行われたオフライン大会を観戦してきた。RTC2023は2019年以来4回目。RTC2019年の後、にじさんじ打鍵王でタイピングが盛り上がったり、miri選手が数多くのテレビ番組で紹介されたり、今やれば結構注目されるんじゃないかと思っていたが、長いコロナの休止期間を経てついに開催。今日を逃すといつ日記を書けるか分からないので当日中に残しておく。

今回、会社員の活動が1月からずっと休みなしなので現地観戦も行く気力がなかったのだが、Twitterで観戦勢の報告を見ているとやはり行きたくなってきたので現地へ。タイピング速度測定の作者様やタイピンガーZの作者様と少しだけど話ができて良かった。

去年までの観戦記:RTC2017RTC2018RTC2019
配信はYoutubeTwitch。今回twitterの反応が結構多い気がしますね。

タイパー視点での感想

タイパー視点でというのは他の人が書いてくれるのでここでは省略。といっても最近はtwitterで投稿するだけでブログ書く人も減ったけど。

個人的にはWeather TypingというコンテンツはRTC2019のひろりんご選手のGrand Finalがエンディングで、これ以上の展開はもうないと思っていたけど、これだけ選手が入れ替わって新しい展開になるとは。今回日テレ共催になることで、いい意味で内輪向けの大会から脱却しつつある感じがした。

会場は日テレのスタジオということで豪華。カメラワークとか、青と赤の照明の効果的な使い方とか、演出がすごい。

今回特にかなvsローマ字、かなvsかな、ローマ字vsローマ字それぞれ見所があった気がする。ワード毎の特徴も結構はっきりしているのでその辺を理解すると面白いかも。

具体的な対戦で特筆するとしたら3位決定戦のはやとぅ選手。前回95%ルールをうまく使っていたので今回はどう魅せてくれるかと思っていたが、今回も3位決定戦で相手が95%からミス入力して94%になった一瞬の隙を突いて勝っていた。

決勝戦はもはや言うことないですね。Weather Typingの試合で一番面白いのは互角の対戦だが、あの速度でのローマ字vsローマ字の完全に互角な対戦は最高に盛り上がる。現地の緊張感がすごかった。

あとは選手のキャラクター性も重要になってきたかな。今回たのんさんが公式ガイドを作成していたが、各選手の紹介が入っていたのが良かった。にじさんじ打鍵王が盛り上がるのはそれぞれキャラクターがあってそれぞれにファンが付いているところも大きいと思うので、miri選手の「王者」みたいにはっきりしたキャラクターがあって周知されていると強い。そういう意味ではセレナーデ☆ゆうきさんには給料を払ってでも毎回参加してもらうべきだと思います。

開発視点での感想

今回は観戦している分には問題らしい問題はなかったと思うのだが、どうだろう。RTC2017以降、動作が重くなる問題、結果画面が表示されない問題、片方のワード開始が遅れてしまう問題、最初のワードが打てなくなる問題、と毎回何かしら問題が発生して運営に支障が出ていたのだが、4回目にしてようやく安心してみることができた。

今回RTC版は以下の改善を入れている。この辺は本体に取り込む予定。

  • 観戦モードで1プレイヤー側の打鍵音を出すようにした。これは「HOKKAIDO esports FESTIVAL2022」の後に頂いた要望だが、ようやく実装。リプレイでも同じ要望を何年も前から言われているけど、同様なので修正するかな。
  • 観戦モードでプレイヤーの表示順を固定する。画面左のプレイヤーが必ず上に来ないとどっちがどっちなのか混乱するので、必ず同じ順番になるようにした。この辺りは次バージョンの別修正の副作用でどちらにしろ実装する予定。
  • 観戦モードのときに他のプレイヤーが全員落ちると動作がおかしくなる。これは念のため。

あと、RTC2023向けというわけではないが、ワード終了時のkpm表示は入れて良かった。もはや昔からこういう仕様だったかのようになじんでいるが、実は2018の大会の時に「入力不能時間のときにグレーの文字を表示するくらいだったら、ワードを非表示にした方がいい」という意見をもらってRTC2019で非表示化した。その後、それならその非表示の時間にワード毎のスピードを表示しよう、となって追加したもの。どっちがワードを取ったか、またワード毎に1000kpmオーバーとかが数値で分かりやすくなって盛り上がりに役立っていた。

まとめ

RTC2019以降、東プレさんもずっと開催のため調整を続けていたことを知っているので、ついにオフライン+観戦ありという最高の形での開催を実現して頂いた運営さんへは感謝。演出や配信、e-sportsとして本気でやっていこうというのを感じる。

一方ここまでいくと個人で作っているWeather Typingの限界も感じる。タイピングのe-sportsとしてのポテンシャルに比べてソフトウェアが足りていない感はずっとある。モダンなオンラインゲームとしてタイピングe-sportsのポテンシャルを活かせるソフトウェア、誰か作りませんかね?

2月が終わるので日記を書かないと。といっても2月は無休だったので進捗なし。せめて最近話題になってきたChatGPTを使ってみる。

毎年賞金100万円の大会が開かれてたのか、知らなかった。ていうか嘘ばっかり。ちなみにURLを教えて欲しいと頼むと適当なURLをでっちあげてくる。

ChatGPTの仕組みは現在勉強中だけど、その場でググって回答するのではなく、現在の記憶状態から今の単語に続きそうな単語をどんどん付け足していくような感じ。なので生成される文章は超適当。

ただ、すごくそれっぽいし、それは違うよね、とか話していると理解するような素振りをしたりするので、すごく人間くさい。既にチューリングテストなら受かってそうな気がする。

冬休み。いい加減勉強に疲れたので息抜きに「情報セキュリティの敗北史」を読んでみた。珍しくOreillyのサブスクにはなかったのでKindleで。525ページになってるけど、半分くらいは脚注と参考文献なので半日くらいかな。

内容的には、自分もずっと考えていたことが情報セキュリティの歴史から説明されていた感じ。今の情報セキュリティってどうやって攻撃するかだけが注目されていて、どう対策するかには誰も興味がない。ホワイトハッカーというよく分からない職業の人が、特に新しさのないバッファオーバーフローの脆弱性を付いて、仰々しい名前を付けて世界で公開して注目を集めるビジネス。

この建築会社が作った家はここに火を付ければ効率よく燃えるから欠陥だ、というのをテレビで発表して富と名声を得て、建築会社に無理矢理対応させるようなやり口。火を付けられるからって普通の人は火なんか付けないし。

・・・って思っていた人は必読。こんな感じの話をちゃんとした切り口で説明して、情報セキュリティは歴史が浅くて迷走してるけど、他にいくらでもある歴史が長い分野から成功した方法を取り入れよう、というのが分かりやすく書かれている。

AWS Certified Security – Specialty (SCS-C01)を受けてきた。839/1000点で合格。

今月頭にSolutions Architect – Associateに合格してそのまま3週間後に受けた感じ。正直3週間はいらなかった気がするけど、土日はクリスマスイブしか空いてなかった。

勉強内容は、唯一の書籍「要点整理から攻略する『AWS認定 セキュリティ-専門知識』 」を読んで模擬試験40問をやって、Udemyの模擬試験65問x2回、Kindle Unlimitedにあった「1週間で攻略!AWS認定セキュリティ – 専門知識 本番用問題集 140問」の模擬試験65問x2回、公式の模擬試験20問をやったくらい。あとは「AWS Security」を7割くらい読んで時間切れ。今回はAWSでの実験もあんまりやってないかな。合計320問くらいで、本番で全く見たことない問題は1~2問くらいだった気がする。

次はどうするかな。難関と言われるAWSのSolution Architect – Professionalを受けるか、Azureを受けるか。。。

IPAの情報処理試験は論文が必要なめんどいやつ以外は全部持ってるし、TOEICも900超えた後は受ける気しないので、久々に試験受けるのは楽しい。IPAも今時紙に手書きじゃなければ合格してあげてもいいんだけど。

AWSセキュリティ資格を取るために勉強中。なのだが、どうしてもAzureをマスターする必要があるのでAzureも同時に勉強。こんがらがりそうな気もするが、意外にAWSとAzureの違いを意識することによって気づくことも多い。Azureの「ロール複数つけるとアクセス権は和集合になる」という説明を読んでAWSは? と思ってもう一度調べると、AWSコンソールではロールのスイッチができるので1つしかできないとかに気づいたり。英語と他の言語を学ぶとそれぞれの違いが分かって理解が深まるというのと同じか。

AWS Certified Solutions Architect – Associate (SAA-C03版)に合格した。副業でAWSセキュリティのスペシャリストであることを無理矢理言わないといけないってことで。

AWSは2年くらいFargate中心に実践してて、勉強期間は実質1ヶ月くらい? 金に飽かせて「AWS認定アソシエイト3資格対策」と「AWS認定ソリューションアーキテクトアソシエイト問題集」をやりつつ有料のAWSで都度実験、「Udemyの模擬試験」を3回分やった。AWSすぐ万単位の課金になる。

Udemyは噂通りムズかったが、3日で1日1回、最初は6割、次の日もう一回やって9割になったことを確認して受験。777/1000点のスリーセブンで合格だった。10時半の回を受験して20時に合格を受領。コツはお金の力。

なんだけど、本命はセキュリティなのでそっちを勉強しないと。Associateは当然合格する前提で、既に1週間くらい前に申し込み済み。AWSのサンプル問題は全問正解だったけどどうかな。

12月になってしまうので更新だけ。副業休みなしで夜はAWS勉強なので何もできず。

WT Android版 4.3をリリース。他のプラットフォームで修正したいくつかのバグFixと、Simejiでもとりあえず動くようにしたくらい。IMEは全ての方式に対応はできず、一つのIMEに最適化すると他で動かなくなるのでいろいろ妥協しているので、とりあえずGboardでもSimejiでもなんとなく動くようにした。

で、今回Android 12向けにしたのだが、ストレージ周りが変更になって苦労した。内部ストレージにデータを入れるとアンインストールで全部消えてしまうのでSDカードにデータを置いていたのだが、Android11で使えなくなった。SDカードのアプリケーション領域に置いているので、4.3ではWTをアンインストールすると記録が消える。今時はクラウドに置けばいいんだろうけどリリースを優先させたのでそこまでは変えなかった。以前のバージョンからアップデートすると勝手に移動されるようにはしたので過去のバージョンの記録は消えない。

あとはGoogle Playのリリースにあたってデータセーフティのポリシーを定める必要ができた。20年前の設計なので暗号化もないしデータの削除機能もないが、別に公開しておけばいいのか。そこで出てくるR8による難読化ってのが気になったけど、Android単体で難読化ができるようになってるのか。今回はやらないけど調査要。

Weather Typing 4.3のmacOS版をリリース。ようやくM1 mac対応したのと、カウントダウン中に落ちる問題の修正。

M1 mac対応は、ネイティブライブラリを64bitにしないとM1で動かないのだが、Visual Studioが対応する気配がないので、ひとまずネイティブライブラリをやめた。デメリットはいろいろあるけど仕方ない。逆にM1でないMacではテストしていないが、まあいいでしょう。

カウントダウン中に落ちる問題は根が深い。前回のリリース時には起きていなかったので、OSのアップデートでいつの間にか落ちるようになっていたと思うんだけど、10回に1回落ちるみたいなやっかいな現象。カウントダウンをやめても落ちるのでいろいろなところをコメントアウトにして少しずつ有効にするという地味な作業をやっていた。結局、ルール設定画面のワード選択をリストにしていると、カウントダウンに遷移したときに何故かリストのスクロールバーにアクセスしにいって落ちるということが判明。そこをドロップダウンにして以降落ちなくなったので多分大丈夫?

Ver4.3アップデートもあとはAndroidとiOSのみ。Androidは他の入力方式がちゃんと動いていないという情報があるのでそれくらいかな。iOSは同じくM1対応を予定。

ウェザタイのWindowsのストア版のテストが終わったので登録しようと思ったが、いろいろなところに詰まって1日かかった。まず署名ができない。証明書がexpiredになっていて、ヘルプにはテスト用証明書の更新しか書いていない。証明書を選択する欄があるのだが、何もないと言われる。どうもローカルの証明書ストアを見ているみたいなのでそっちを見ると、2021年でExpiredされた証明書が入っていたのでそれを削除してもダメ。新しいストアアプリを作ろうとしてもアプリ名を登録できず。試行錯誤してWebの方からならアプリを作れる。で、新しいプロジェクトを作って新しいアプリに関連付けてビルドすると新しい証明書がローカルの証明書ストアにインストールされた。その後、元のアプリをビルドすると今度はThumbprintが違うと言われるので、ローカルの証明書ストアからpfxをエクスポートしてVisual Studioで選択する。これでようやく証明書問題をクリアできる。テスト証明書を作るとそれがあらゆる箇所で邪魔してくるので、Temporary証明書のpfxは消しておくこと。

あとはWACKが必ず変なエラーを出すようになっていた。OSチェックをやるようにしていないとHangするみたいな。新しいプロジェクトでも同じなので、とりあえずWACKは無視して申請してみる。新しいWindows SDKのWACKを使うと解決するみたいなことも書いてあるけど、UWPが古いSDKを参照していてアンインストールできず、新しいSDKは古いSDKをアンインストールしないとインストールできないのでどうにもできない。Microsoftの人がチェックしてくれるからいいか。

2年ぶりにウェザタイをバージョンアップ。さすがにいろいろバグ報告がきているのでそれだけでも対応。機能追加や仕様変更はなし。

新サーバへ移行完了。唯一ローカルでのテストが不十分だったメールも、SSL+認証モードで送受信できるし、一番制限が大きそうなgmailで送受信できて、spf、dkim、adsp、dmark全てにpassが出ているし、オープンリレーチェックでもOKになっているのでこれでよしとしよう。

何かおかしくなっていたらTwitterか掲示板へお願いします。

CentOSのサポートが終了するからいつか対応しないとと思いつつほっておいたサーバ移行。denasu.comへの攻撃も増えてきたのとメモリ不足への対応も考えて新サーバ構築中。

OSはいつもつかっているUbuntuに変更。

メモリ不足はさくらのVPS 4GBを契約。それでも月2500円。TypingTubeの作者の方は月10万円ってTweetしてたのでまだまし、なのか?

セキュリティは全てのサービスをDocker、Docker-Composeで構築する。Ubuntu本体は公開鍵認証のSSHとポートフォワーディング専用FTPだけ動かして、Web、メール、ロビーなど、もろもろ独立したコンテナにすることで、サービスを乗っ取られても他のサービスには影響しないようにする。唯一SSHに脆弱性がなければ相当強固なはず。

VPSに展開する前にWindows上のWSL2でステージング環境を構築。コンテナなのでこのまま持って行けばVPSでも動作するはず。これも便利。Web、WordPress、ランキング、ワードサーバ、DB、GITもいろいろはまったけどコンテナ化完了。特にPHPはCentOSのパッケージマネージャ制約で最新版が使えなかったりしたのが、コンテナをビルドするだけで最新版になるのでだいぶよくなる。

ロビーとウェザタイサーバは特に問題はなさそうなので最後の難関がメール。セキュリティ設定がたくさんありすぎて複雑。結局、SMTPはポート25+587でSASL認証+STARTTLS、自ドメイン宛のメールは認証なしでも受け取れて、他ドメイン宛のメールは認証なしならリレーエラー、認証ありなら他ドメインの25ポートに送る、POPはポート995でパスワード認証+TLSとした。TLSの証明書はさくらのドメイン認証証明書でいけると思うけどまだそっちでは試していない。SPFは既に旧サーバでも設定していたが追加でDKIMとDMARCの設定をする。このあたりを試すにはDNSの逆引きやTXTレコードが必要なのでローカルDNSサーバも構築。

これだと25と587が同じ設定なのでSubmissionポートって意味あるのか? って思ったけど、OB25P Blockingってあくまでアウトバウンド禁止であって、denasu.comは別に回線を提供するプロバイダじゃないから関係ないのか。関係あるのはクライアント側で、メーラを使ってdenasu.comの25ポートにつなごうとするとNo Route to hostエラーでつながらない。なので587ポートをオープンする必要があるってだけか。クライアントから25ポートにアクセスする人は悪意があるとみなされるが、587ポートへのアクセスはフリーで、587ポートが安全かどうかはそのサーバに依存するわけで、この構成だと587ポートは認証必須、リレー禁止になっているからOK、と。てな感じで合ってるのかな。。