2024年4月21日日曜日

新しいテキストエディタ Zed

 新しいテキストエディタの存在を知りました。

このポストやウェブサイトを見た感じの事前情報としてはこんな感じでしょうか。

  • VSCodeのようなソースコードエディタ
  • GitHubの開発チームが作っている?
  • Language Serverに対応
  • Electronを使わずにRustで作っている
  • 現時点ではmacOSのみ対応、Linuxは今後対応予定

ポストVSCodeとして期待できるかもしれない、ということで早速インストールしてみました。ほんの少ししか使っていませんが現時点のレビューを書いておきます。全然使いこなしていないので的外れなことを書いているかもしれません。

まずデフォルトでVimモードを選択できます。わかってるなこいつ

試しにvalue-schemaを開いてみると、ソースコードの解析がすぐに終わりました。VSCodeよりも爆速です。Rustで作っているせいなのか、必要最低限の解析にとどめているのか、もしくは手元のVSCodeに拡張機能を入れまくっているせいなのかわかりませんが、とにかく速い。

定義場所へのジャンプや参照場所の一覧表示もバッチリ。ESLintの設定も自動的に読んで、問題箇所を指摘してくれます。この辺はVSCodeと同様。

エディタ内で端末も使えるのでちょっとした作業も問題なし。

まだ本当に少ししかいじっていませんが、エディタとしては問題なく使えています。ただ、内部にフォーマットルールがあるのか、ファイルを保存するときに勝手にフォーマットをかけてしまうのがウーンという感じです。多分これは設定をいじれるんじゃないかと思いますがまだ試せていません。EditorConfigにもまだ対応していないようです。

拡張機能にも対応していますが、今のところ使える拡張機能はそこまで多くありません。とはいえおそらくまだサードパーティー製の拡張機能があまり作られていないであろう現状では十分に多いといえるのかもしれませんが。

総評として、公式で謳っているだけあってパフォーマンスは素晴らしい。保存時の挙動が気になる以外は、(サポートしている言語であれば)現状でもソースコードエディタとしては問題なく使え、今後にも期待できる出来です。拡張機能の充実にも期待しましょう。Linuxに対応したらGentoo用のebuildファイルを作って応援します。

開発が進むにつれて機能がてんこ盛り、動作が遅くなる・・・というのはあらゆるソフトウェアの宿命なので、いい感じに折り合いをつけていただきたいです。

そういえば似たようなコンセプトのエディタにJetBrains Fleetがありますが、こちらもまだ正式版ではありませんが頻繁に更新されていますね。

新たなエディタ戦争、楽しみです。

2024年4月14日日曜日

MD5ハッシュの衝突

 MD5の新たな衝突が発見されたそうです。

MD5自体はかなり以前に強衝突耐性が突破されているので、衝突するデータのペアが見つかったこと自体は大したニュースではありません。

今回は「すべてASCIIの印刷可能文字からなる」「1文字違い(さらに言うなら1ビット違い)の文字列が」衝突したというニュースです。

いやすごいんですけど、これどうやって見つけたんだ

2024年4月7日日曜日

XZ Utils続報

 先週XZ Utilsのバックドアのニュース(CVE-2024-3094)を記事にしましたが、1週間して色々な情報が出てきました。

このバックドアを悪用するとSSHサーバーに侵入できるとか、バックドアを仕込んだ人物は数年かけてXZ Utilsチームの信頼を得た後に仕込んだとか、バックドアに気づいたのは本当に偶然だったとか。

今回の時系列は以下のページが詳しいですね。

XZ Utilsにバックドア攻撃が行われるまでのタイムラインまとめ

これを見ると2人組による計画のようにも見えますが、真相はいかに。

2024年3月31日日曜日

XZ Utilsのバックドア

 大抵のLinuxディストリビューションに含まれているXZ Utilsにバックドアが仕込まれていたというニュースを小耳に挟みました。

XZ UtilsはLZMAやxz形式の圧縮ファイルを扱うためのライブラリーで、上述の通り大抵のLinuxディストリビューションに含まれています。

バックドアが仕込まれてから発覚するまでが1ヶ月程度だったというのもあって、影響を受けたディストリビューションはあまり多くないようです。あまりいないとは思いますが、ここ1ヶ月ほどの間にソースコードからXZ Utilsをビルドしている方は影響を受けている可能性が高いのでダウングレードしたほうがよさそうです。

さて、我らがGentoo Linuxへの影響はというと・・・Changelogを見る限りこんな時系列でしょうか(日付はUTC)

というわけで、3月24日〜30日の間にパッケージを更新した人がバックドアのあるものを掴んだ可能性が高いです。一刻も早いうどんワールドをおねがいします。

こちらにも諸々やり取りがあります。

2024年3月24日日曜日

円周率105兆桁

 円周率が105兆桁まで明らかに、所要時間は70日弱

数学とコンピューター好きの端くれとして、円周率ネタは大好きなんです。中学生くらいの頃は無駄に300桁くらい覚えていたり、円周率の計算式を独自に導出したりしていました(後にすでに発表されていることが判明したんですが・・・)

直近ではGoogleが100兆桁まで計算していて、今回はそれを5兆桁更新したというニュースです。

記事にあるとおり、この計算をしたのはストレージの専門家なのですが、「なぜ円周率の計算をストレージ専門家が?」というところが興味深いので今回ネタにしました。

というのも、こういう計算系はアルゴリズムの工夫によって記録が更新されるように見えますが、近年の円周率業界y-cruncherというソフトで「チュドノフスキー級数」を計算する・・・という方法が定番で、アルゴリズムはもうほぼギリギリまでチューニングしきっているような世界なのです。

そのため、昨今の円周率業界で一番のボトルネックはストレージのI/O。ストレージの専門家が記録を更新するのもうなずけます。

ちなみに、ガウス=ルジャンドルのアルゴリズムやボールウェインの4次式のように、理論的にはチュドノフスキー級数よりも格段に収束の速い計算方法はあります。しかしコンピューターで多倍長演算する上では整数の四則演算以外(平方根計算など)をなるべく減らしたいとか、前回の計算結果を利用してさらに多くの桁数を計算するというテクニックを使うために今でもチュドノフスキー級数が使われています。個人的には、ボールウェインの4次式を整数の四則演算だけで多倍長計算できるようなアルゴリズムとか出てきたらなんかアガります

円周率は決して終わりのないことが証明されているので、おそらくコンピューターがある限り円周率の記録更新はこれからも続くでしょう。

2024年3月17日日曜日

WinterJS正式版

 新たなサーバサイドJavaScriptランタイム「WinterJS 1.0」正式リリース、WebAssemblyへのコンパイルも可能。Wasmerが開発

去年の10月ごろに出た新しいJavaScriptランタイムが正式版になったようです。今回の開発元はWasmer。爆速を謳っているBunよりも速いと主張しています。

まだ使ってないので評価も何もできないのですが、元記事をざっと見た感じではDenoやBunとは違ってTypeScriptのネイティブサポートはないようですね。

これでV8(Chrome) / JavaScriptCore(Safari) / SpiderMonkey(Firefox)のエンジンを使ったランタイムが揃ったので、みなさんいい感じに競争してほしいです。

2024年3月10日日曜日

GRUBのブートエラー "error: file /boot/ not found."

 先日、Linuxを入れているPCを再起動したら画面にこんなメッセージが出て起動できなくなりました。

error: file /boot/ not found.

Gentoo Linuxを使っているんで時々カーネルのアップデートはするけど、特にブートローダー周りをいじってるわけでもないし現に今まではこういうエラーも特に出なかったし、うーんなんだろなー🤔 このマシン使えないと副業も何もできんし困ったなー🤔

とりあえずエラーメッセージで検索しても原因らしきものは見つからず。仕方ないのでこういうこともあろうかと用意していたUbuntu入りのUSBメモリーで起動し、パーティションをマウント。マウントできたので、とりあえずストレージやパーティションに致命的な障害があるわけではなさそう。

あらためてカーネルの再構築やらgrub-mkconfigやらを実行して再起動。でもまだ同じエラーが出る。

半日近くあれこれ試行錯誤しましたが、最終的にパーティションをマウントしたディレクトリーにchrootしてgrub-installをやり直したら直りました。

grub-install --target=x86_64-efi --efi-directory=/boot/eft --bootloader-id=boot /dev/sda

結局原因はわからずじまいだけど、きっと何かの拍子になんかおかしくなったんでしょう。そうに違いない。

このマシン自体は4年前くらいに買ったやつで、今でもスペック的に大きな不満はないんだけどそろそろ買い換えどきかなぁ🤔