2023年7月30日日曜日

愛知で「俺コロナ」

 3年ほど前に愛知で「俺コロナ」が多発というニュースがありましたね。それとは全く関係ない話ですが、先日愛知で俺がコロナにかかりました

2023年7月23日日曜日

value-schema v4.0.0が出ました

 去年の12月に「そろそろv4が出るよ」と予告して早7ヶ月。先日ようやくリリースしたので報告です。

・・・と思ったらDeno版が最新になってない。あとで直しておきます。

機能的には去年の記事から変わっていませんが、テストケースを増やして最新のNode.js / Deno / Bunでも動作することを確認しました。

手前味噌ながら、まあまあ便利なライブラリだと思っているのでよろしければ使ってみてください。

2023年7月16日日曜日

Proton Passをちょっと使ってみた

以前ちょっと話題に出した、Proton Mailの開発元が提供する新しいパスワードマネージャーであるProton Pass一般ユーザーも使えるようになったようです。

ちょっと使ってみましたが、以前予想した通り

  • 保存場所はProtonのサーバ
  • PCではブラウザーの拡張機能で提供、つまりPCでは基本的にブラウザーで使うことが前提(単にメモを取る場合でもブラウザーを立ち上げている必要がある)

…という感じでした。

料金表を見ると、有料プランも月額制(年額払い)で買い切りはないようです。まあ自前でサーバーを運用している以上、買い切りプランというのは難しいんでしょう。

やっぱり今使っているEnpassが機能的にも料金的にも個人的にはまだ理想形です。日本語がところどころおかしいこと、Linux版ではIMEの使用に難があることを除けば…

2023年7月9日日曜日

サインイン vs ログイン vs ログオン

「サインイン」「ログイン」「ログオン」「ログオフ」の使い分けは必要か

英語のニュアンスの話は知らんけど、個人的には「ログイン」一択ですね。自分でサービスを作る時も「ログイン」です。

  • 「サインイン」と「サインアップ」はどっちがどっちだっけと一瞬迷うので嫌い
  • サービスの「中に入る」というイメージなので、(オンではなく)「イン」

という消去法で「ログイン」。でも上記ストーリーの「sign in なら「受付で氏名を書く」という現代の現実に沿っていてわかりやすい」という説明はなるほどと思いました。

そもそもこれ、日本語で適訳がないのが問題かもしれないですね。誰かいい訳を作ってください。あと、日本語のサービスでは「サインアップ」とか書かずに「新規登録」と表記してほしいです。


ところで、"login"と"log in"の使い分けについて。

"login"は名詞、"log in"は動詞です。

なので、受動態は"logined"でも"loggedin"でもなくて"logged in"です。

「ログインしているユーザー」みたいな場合は"logged-in user"のように表記してください。

2023年7月2日日曜日

いいプログラマーの境目

1ヶ月ほど前に「配列のすべての要素が条件を満たすならtrueを返す」関数に空配列を渡したらtruefalseか?というツイートが話題になったそうです。

多分自分ならこういうふうに書くかな。

function kansuu(hairetu) {
  for (const youso of hairetu) {
    if (!jouken(youso)) {
      // 1つでも条件を満たさなければfalseを返す
      return false;
    }
  }
  return true;
}

なので空配列を渡したらtrueを返しちゃいますね。

そもそも本来は「仕様を(依頼元に、もしくは要求仕様から)確認し、それに応じたコードを書ける人」がいいプログラマーだと思います。

はい、ワイは良くないプログラマーです。

なお、実際のシステム云々は置いておいて数学(集合論、論理学)としての話であれば、trueが正解です。上記ストーリーのこのコメントが簡潔に表現しています。

  • 「配列のすべての要素」とは、「全N個のうちN個」である
  • 問題の関数は空配列(N=0)を許す
  • 空配列が渡された際は「全0個のうち0個」の要素が条件を満たしている
  • ゆえに、空配列が渡された際はtrueを返すべきである