‘その他’のエントリ

前回完成したカロリーメイト、さらに別バージョンが納品されてきた。これはバニラ味だけど、フルーツ、メープル、チーズ、チョコの5種類が揃っていた。

この焼き加減、もう本物にしか見えないんだけど・・・どれだけ本気なのか。どういう意味があるのか。

ただ、創作する立場としてはよく分かる。だいたい何か作る時って、「誰か」じゃなく「この人」にこれを魅せたい、というのがあって、職場の物理学科の人に物理シミュレータを見せて変に思われたいとか、楽器経験者のはっぱさんに楽譜作成ソフトを見せて苦労した点を分かってほしいとか、そういう気持ちで作っている。これも、職場の人に・・・なんだろう、呆れられたいという気持ちが詰まっていますね。

前回のカロリーメイトで満足していたら、最新バージョンが納品された。

サイズ感が改善された他、塗装もされたことで色合い・手触りも本物そっくり。もう売っててもいい品質。3Dプリンタとプラモ製作技術が組み合わさるとここまでになるんですね。

特になし

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

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

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

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

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

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

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は仕様が直交しないというか、出所不明な制約が結構あって、例外をたくさん覚えるのがきつい。

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

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勉強なので何もできず。

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、と。てな感じで合ってるのかな。。

個別の言及についてはあまり反応しないようにしているけど興味深いテーマだったので。タイピング練習ソフトは実用には意味がないという話について、ウェザタイの見解。

タイピングソフト・サイト不要論

ウェザタイは公開当初からタイピング練習ソフトと呼ぶかタイピングゲームと呼ぶか迷っていて、最終的には「タイピング自体を目的とした練習ソフト」と表記するようになった。というのもこういうソフトには2つの側面があって、初心者向けにはタイピング練習ソフトだし、それ以降はタイピングゲームになってくる。ウェザタイは練習もできるけどどちらかというとタイピングゲームに近い(ように設計している)。

タイピング練習としてはウェザタイでいうとLv4~5くらいあれば実用上打鍵がネックになることはなくて、それ以上は頭の中で文章を考える方が時間がかかって、実用上はあまり意味ないと思う。速記などではそれ以上が求められるけど、特殊なキーボードを使ったり、IMEの辞書学習を固定して変換時のスペースを押す回数を覚えるとかそういう話になって、それは別の練習ソフトや訓練プログラムが必要になる話。

で、それはタイピング練習ソフトとして見た場合だが、ある程度マスターすると途中からタイピングゲームに変わってくる。手段と目的が変わってくるというか、「文章入力を早くするためにタイピング練習ソフトを使う」から「タイピング練習をするためにタイピング練習ソフトを使う」に変わってくる。50mを世界トップクラスで走れても実用上は車を使った方が速い、だけど競技として見た場合は世界を魅了できる、みたいな。

なので、今のウェザタイの紹介文書では、初心者向けには練習ソフト、それ以降はスポーツとして楽しむというような記載としている。当時はeスポーツという言葉ではないけど。

Weather Typingは,タイピングを楽しむためのキーボード練習ソフトです。もちろんタイピング初心者が普通にタイピング練習をすることもできますが,一番の楽しみは他のユーザと競い合うことです。ネットワーク対戦やネットランキングへの参加,大会への使用といった多彩な使い方ができるように作ってあります。是非タイピングを好きになって、タイピング自体を目的とした練習ソフトとして使い込んでください。

ご時世的に夏休みは実家に帰らないことにしたため時間がある。で、ずっとやろうと思っていたAWS IoT Coreの実験をやってみた。

目標はRaspberry pi に付けたLEDをブラウザからオンオフするところ。

構成図もdiagrams.netを書いてみた。

以下のような感じ。ネット上にたくさん情報があるのであんまり苦戦はしない。

  1. AWS IoT Core上でデバイスを作る。
  2. ラズパイ上で、MQTTのトピックをサブスクライブして、on/offを受け取ったらLEDをon/offするように実装したPythonプログラムを起動する。
  3. Lambda関数を作ってMQTTのトピックをパブリッシュするようにしておく
  4. API Gatewayを作ってLambda関数を呼び出すようにする

ここまでできれば、LEDの代わりに他のものをつなげばいろいろリモート制御できる。

ほぼ夏休みに入ったので、久々にウェザタイのバージョンアップをしている。ウェザタイはAppiumを使って自動テストができるようになっているので試してみたが、動かない。

以前と全く同じバージョンにしても動かないし、ちょっとずつバージョンを上げていってもある機能は動いてもある機能は動かなくなる。Githubもバグ報告しかなくて誰も修正してないのでもう終了か。

WindowsならMicrosoft UI Automationというのもあるっぽいけどもう今更なのかな。Unityで作り直すしかないのかな。

かなり前に買った初代?Boogie Board、電池を替えても内容が消えなくなってしまった。新型を買おうと思ったんだけど、ちょっと前にどこかのヨドバシで見たPLUS Kaite2が気になっていたので買ってみた。何かメーカーのページ見ると新型出てるけど。。。

Kaite2は簡単に言うと「せんせい」。磁気を使ったボードで、白地に黒、電池なしで細い線が書けるので、Boogie Boardの欠点を全て解決しているように感じる。もうちょっと使い続けないと分からないけどとりあえずは良い感じ。

うちは1Fなので洗濯機+独立した乾燥機を使っているのだが、最近ガタガタうるさくなってきたので新しいのに換装。家に人が入ることが久しぶりなので、洗濯機の間を大掃除して、邪魔なものを別の部屋に移動して待機。ヨドバ?メーカー?の技術者の人が来て15分くらいで入れ替えて去って行った。技術者はかっこいいですね。

乾燥機は5万円くらいか。前のは12年くらい使ってたから、週100円いかないくらい。電気代を合わせてもコインランドリーより全然安い。

コロナでしばらく止まっていたが、行くなら今しかないということで、いつの間にか追加されたヨドバシ甲府、最後のヨドバシ新潟へ行って全24店舗制覇してきた。

ヨドバシカメラといえばみんな知ってる全国展開している家電量販店。店員さんの知識量豊富が特徴のお店ですね。

元々、千葉、横浜、川崎、アキバにはよく行ってたけど、本格的に巡礼を始めたのは2018年。一時的に関西に住んでいたときに梅田京都へ行って、そういえば昔ヨドバシ札幌に行ったことがあったのを思い出し、全店制覇挑戦へ。関西へいる間に名古屋、博多、関東へ帰ってから改めて関東近辺と北を攻略。コロナでしばらく止まっていたが、ようやく完了。

ネットを探してみると全店制覇しようとしていた方とか制覇した報告とかはあるので、それなりにやっている人もいるのかな。甲府は最近できたので甲府含めて制覇した人は少ないかも?

ちなみに上の絵の札幌はかなり前に行ったので写真がなかった。取り直しに行ける場所でもないので手書きで。

一応書いておかないといけなさそうなので、コロナ後は感染症対策に考慮した上で行っています。まあ、普段一人暮らし+リモートワークで、電車が空いている時間にふらっと新幹線に乗ってヨドバシに行ってそのまま新幹線で帰ってくるわけで、だいぶリスクは低いかと。

掲示板でウェザタイがM1 Macで動かないという話があり、M1 Macbook Airを買ってみた。下取りを利用したら5万円で同スペック以上になったんだけど、Intel Macのテスト環境がなくなった。

で、調査をしてみたが、そもそもの原因はネイティブCライブラリがIntelだから、というのはその通りだったのだが、Apple SiliconサポートしようにもXamarinがM1ビルドに対応していない。ネイティブCライブラリを使わなければRosetta上で動くのだが。

なので、M1に対応するとしたらネイティブCライブラリを使わないようにする必要がある。まだ時間がかかりそう。

最近ウェザタイに使うためにディープラーニング実装したり本読んだりしている。ニューラルネットを勉強してたときは脳とかけ離れているのでこれじゃあ脳を作るのは無理だな、と思ってたのが、結構面白いところまでいっているのが分かってきた。

プログラムで脳を作るのは子供の頃からの夢なのでずっと本読んだり考えたりしているのでちょっとだけメモ。

おそらく最初にキモになるのはエンコーダとデコーダで、外界の情報を主成分分析的に圧縮して、概念をベクトル化するところ。この辺りはいろいろ脳関係の本を読んでいると実際の脳でもやってそうな感じがする。たぶんニューラルネットで言う誤差逆伝播は実際にはなくて、ヘブ則と抑制性シナプスとよく分からない接続で解決しているはずなんだけど。

で、もう一つ重要なのが環境入力と動作の出力から報酬を予測するところで、こんな感じなのかな、って考えていたのはあるんだけど、最近勉強してたら出てきたディープラーニングを使った強化学習がまさにそういうことを言っている。ただ、世界に実際の身体があって生活しながら学習させないと高度な知性にはならないし、報酬を何段階にも動的に獲得していく必要があるはずなので、今の強化学習だけではダメな気はする。強化学習はそこを目指しているわけではないけど。

この辺り、いくらでも書くネタはあるけど、理解できるものにならないしただの妄想なので書いてこなかったところ。でもそろそろ何か書いていきたいなあ。例えば全身麻酔したとき、その間時間経過を感じずに一瞬で目覚める感覚になるわけだけど、それって脳が動いていない、つまり死んでいる状態を一時的に再現している、と。逆に死んだ後はそういう状態なわけで、時間経過も何もないことが分かる、とか。誰か意味分かりますかね。

土曜日にG検定を受検してみた。95%はできていると思うのでたぶん大丈夫だろう。久しぶりに試験勉強ぽいことをしてみたけど、選択式の試験はキーワードと意味を覚えるだけの表面的な勉強になるので、これ意味あるのかなあ、と思ってしまう。この後はE資格を受ければ良いんですかね。統計検定?

で、実際今やってるのはタイピングオンライン用の問題文章生成。ウェザタイではXamarinで動かすために行列計算からLSTMまで自力で実装したが、Unityではkeras使えそうな感じなのでそっちに移植中。

今更だけどDenasu Webサイトのスマホ対応をやってみた。Denasuサイトは1998年から運営していることになっているので、モダンな作りにするにはいろいろとめんどくさいなあと思ってたけど、いい加減やらないと、って感じ。
やってみると各HTMLにviewport

<meta name="viewport" content="width=device-width,initial-scale=1" />

を付けて、CSSで

@media screen and (max-width: 600px)

の中に小さい画面用のデザインを定義して、細かいところでは画像のmax-widthを100%にしたり、そのくらいでそれっぽくなった。

今更だけどDenasuトップページにコンセプトを追記した。

作者の好きなことをソフトウェアにしているので、作者自身がユーザです。また、趣味の開発であり、広告も利益も目指していません。ユーザとして欲しい機能、使いやすさを目指しています。

フリーソフトだからできることがある、というだけで、商用ソフトウェアを否定するわけではない。

結局KPI、何を目標にするかによって結果が全然違うわけで。

例えばWWW。昔はユーザの相互情報共有を目指して有用なコンテンツがたくさんあった。その後商業利用が大多数になってKPIが利益になったので、ユーザが見づらくても広告を入れまくったり、SEO対策でどうでもいいページばかり増やす結果になった。

例えばテレビの報道。KPIは視聴率=スポンサー獲得なので、視聴者の利益とか日本を良くしたい悪くしたいという思想は特になくて、単に何でも批判して煽っていれば視聴率が取れるのでああいう風になっているだけ。

ソフトウェア。商用のソフトウェアの場合、どうしても利益を優先するので、誰かがほしがっているものを(自分は欲しくないのに)作ってあげることになる。なのでなかなかユーザ目線になるのは難しい。昔ながらのフリーソフトはKPIが自分が使いたいものを作る、なのでユーザの利益と直結しやすい。

ということで(今のところ)自分は他のことで十分収入を得ているので、Denasuは広告もなし、営利非営利関わらずフリーソフトとして使ってもらう、とうやり方にしている。

メインメモリが足りなくなってきたので、3年ぶりにXperia SO-01JからXperia 1 IIへの乗り換え。アプリの移行は簡単だけど、不要なアプリの削除とか、POBoxがなくなって困ったりとかで2時間くらい。とりあえず快適かな。my daizのページは非表示にできないのかなあ。

しかし設定周りは毎回UI変えてくるから毎回覚えたのをリセットされて使いづらい。。。