2024年7月7日日曜日

JANOG54 Meetingに参加しました

 先日7/3-5に、奈良でJANOG54 Meetingが開催されました。毎回ネットワーク分野の錚々たる企業が集まっており、日本国内でインターネットが壊れた場合は大抵ここの参加企業のどこかが何かやらかしていると考えて間違いないです。

色々ブースを見て回った他、さくらインターネットのブースで「高火力 DOK」の説明も行いました。AI関連のサービスなのでネットワークと直接関係はないんですが、6/27に発表されて1週間ほどしか経っていないサービスなので、広報も兼ねて説明要員としても参加しました。

ネットワークなどの低レイヤーにあまり興味のないウェブ開発者もいると思いますが、自分たちが開発している(あるいは普段使っている)サービスの土台を知るためにもこういうカンファレンスはおすすめです。最初は言っていることがさっぱりわからないかもしれませんが、何度も参加しているうちに知り合いができたり話の内容も理解できたりするので面白いですよ。

奈良には学生時代に数年(今回の会場から2駅ほどしか離れていない場所に)いたんですが、さすがに当時から時間が経っているので駅前がかなり開発されていますね。ただ夏暑く冬寒いという気候は相変わらずでしたが。

2024年6月30日日曜日

excuse us

 やや混み気味の電車に乗っていたとき、外国人の家族連れが降りようとしていました。そのときに聞いたのが “Excuse us” 

こういうときのイディオムは “Excuse me” が定番だと思っていましたが、usは初めて聞きました。

よく考えれば、許してもらう対象が家族という「複数」の場合はusを使う、というのは当たり前といえば当たり前ですね。知っている人にとっては「何を今更」という感じでしょうが、今まで習ったことも聞いたこともない表現だったので勉強になりました。

   /⌒ヽ 
  / ´_ゝ`)   /⌒ヽ  Excuse us...
  |    /   / ´_ゝ`) 
  | /| |    |    /
  // | |     | /| |
 U  .U     // | |
         U  .U


2024年6月23日日曜日

ひも理論から円周率の公式を発見

 インドの物理学者がひも理論の研究から偶然「円周率」の新しい公式を発見

いやー、こういう発見があるから数学は面白い。数学が「自然科学の言語」と言われるのも納得です。

原論文はこちら。実際の計算公式は以下のとおりです。

\begin{eqnarray*} \pi=4+\sum_{n=1}^{\infty}\frac{1}{n!}\left(\frac{1}{n+\lambda} - \frac{4}{2n+1}\right)\left(\frac{(2n+1)^{2}}{4(n+\lambda)}-n\right)_{n-1} \end{eqnarray*}

2つほど補足すると、唐突に出てくる\(\lambda\)は実部が\(-1\)より大きな任意の複素数、右下の小さな\({}_{n-1}\)はポッホハマー記号(昇冪)です。

Pythonで書くとこんな感じ。元の式をできるだけ忠実に表しているので、メモ化などの最適化はしていません。

# https://gigazine.net/news/20240619-string-theory-pi/
# 原論文: https://journals.aps.org/prl/pdf/10.1103/PhysRevLett.132.221601
import math

def poch(x: float, n: int) -> float:
    # ポッホハマー記号(昇冪)
    # https://ja.wikipedia.org/wiki/%E3%83%9D%E3%83%83%E3%83%9B%E3%83%8F%E3%83%9E%E3%83%BC%E8%A8%98%E5%8F%B7
    y = 1
    for j in range(n):
        y *= x + j

    return y

def term(lambda_: float, n: int) -> float:
    # 第n項を計算
    a = 1/(n+lambda_) - 4/(2*n+1)
    b = (2*n+1)**2 / (4*(n + lambda_)) - n
    return a * poch(b, n-1) / math.factorial(n)

def pi(lambda_: float, n: int) -> float:
    # 円周率を計算
    p = 4
    for n_ in range(1, n):
        p += term(lambda_, n_)

    return p

print(pi(1000, 100))

Python Praygroundにコードを貼り付けると結果が出てきます。pi関数に渡す値を色々いじって遊んでみてください。

2024年6月16日日曜日

𝕏の「いいね!」非公開

X、「いいね!」を週内に非公開化すると発表  

わざわざこの記事を取り上げた理由はこの記事そのものではなく、これに対するGoogle翻訳。

  • "Like"(名詞)を「いいね!」
  • "like"(動詞)を「『いいね!』する」

のように、ちゃんと文脈を捉えて訳しているのが興味深かったです。

𝕏関連の文章も大量に学習させたんでしょうけど、過学習起こしてないよな・・・?

2024年6月9日日曜日

Enpassのバグ その後

 先日FirefoxのプライベートモードでEnpass拡張機能が動作しなくなったという記事を書きました。記事中にあるとおり公式フォーラムでも報告したんですが、「プライベート拡張機能を有効にする設定にしてね」というコメントをいただき、ちょっと話が噛み合っていませんでした。

そして最近Firefoxを更新したところ、拡張機能が使えるようになっていました。何もしてないのに壊れて何もしてないのに直りました

Firefox本体の仕様の問題だったんでしょうか。でも全ての拡張機能が使えなくなっていたわけでないので詳しいことはよくわかっていません。モヤモヤ感は残りますが、とりあえずフォーラムにも報告して一件落着(?)です。

2024年6月2日日曜日

パスワードの定期変更について

 昔、アルゴリズム辞典やLaTeXの本などで大変お世話になった奥村先生のポストより。

このポストについては何も異論はないのですが、とはいえこのブログで何度か取り上げたように「パスワードは半角英数16文字以内」のようにお前絶対ハッシュ化しとらんやろというウェブサービスがいまだ存在しています。

そういうサービスがSQLインジェクションのような基本的な攻撃に正しく対応しているところばかりとも思えないので、「いつかデータを引っこ抜かれることを想定した定期的なパスワード変更」は必ずしも無意味ではないと思います。

何事も臨機応変に。

2024年5月26日日曜日

プログラミング言語の省略表記について

 ちょっと前にPythonを滅ぼそうやない会とかいう記事が投稿され、それに対するアンサー記事も投稿されるなどまあまあ賛否両論だった記憶があります。

個人的にはシンタックス云々に一部同意する部分もありつつ、でも英語の語順的にまあそうだろうなーというアンサー記事に同意する部分もありつつ、でも英語話者以外が使うことも考えてくれよなーと思いつつというどっちつかずの状態です。

個人的ついでに書くと、三項演算子やラムダ式などの省略記法は基本的に書きません。リストの内包表記も使いません。理由はあとで自分がすんなり読める自信がないから

「そんなもんも読めないお前のスキルが低いだけ」と言われたら返す言葉もないんですが、とはいえ大抵のプログラマーは数ヶ月前、いや数週間前に書いた自分のコードが理解できないという状況を経験しているはずで、なるべく平凡な書き方のほうが大抵の人が理解しやすいでしょう。

Pythonに限らず、他の言語でもあまり省略記法やシンタックスシュガーは使わない傾向ですね。例えばJavaScriptのオプショナルチェーンとかも使いません。

JavaScriptといえば、個人的には互換性を数十年引きずっているあの言語仕様はなんとかならんもんかと思ってます。とはいえ上澄みをすくおうと頑張っているAltJSが生まれては消え、スーパーセットを謳っているTypeScriptが事実上のデファクトスタンダードという現状を見ると、これが市場の意思なんだと納得するしかないですね。JSConfの運営ボランティアにも入っていながらこんなこと言うのもアレなんですが。

結局何を言いたいのかよくわからん記事になってしまいましたが、要するに自分は平凡なソースコードを書いてるよという極めて平凡な内容しか書いてないですね。