爆速AIコードエディター Zed
引用元:https://news.ycombinator.com/item?id=43912844
2022年夏、Zedがまだアルファ版より前の頃にインターンしてたんだ。Nathan,Max,Antonioは最高のやつらで,すごく丁寧にソフトを作ってる。彼らが頑張ったエディターが評価されて,本当に嬉しいよ。Antonioと一緒に拡張機能システムのプロトタイプ開発をやってたんだ。コードの話し方とか,意図を持って変更することを彼から学んだんだ。「最高の解決策は,その成り立ちが読み手にわかるものだ」ってね。最高の夏だったよ。エディターがオープンソースになってAI連携にお金払う人がいるのも嬉しいな。元々はチーム向けコラボ機能の課金モデルだったと思う。今でも毎日使ってるし,チームに長く続けてほしいな。[0]:拡張機能はLuaからWasmに変わったよ。この辺りの技術的な詳細とか,Zedをアプリプラットフォームにする可能性についてブログ記事書いてる途中なんだ。
コラボ機能はもうちょっと続けてほしかったな。AIの波が来たら,色々なバグとかあって,置き去りにされた感じがする。僕,コラボ機能目当てでSublimeからZedに乗り換えたフルタイムユーザーなんだけど,接続が切れたり,変更が上書きされたりして,もう信頼できなくて使ってないんだ。たぶんSublimeに戻ると思う。回線のせいじゃないよ。積極的にIssueとか出してるけど,AIにばっかフォーカスしてるのを見ると,Zedはもう僕のためのエディターじゃないなって感じるよ。
うん,コラボ機能はまたやる予定だよ。大変だったけど,みんなからたくさん要望があった機能を先にやるために,一時停止する必要があったんだ。チームコラボをもっと良くする大きな計画はまだあるからね!
AIエージェントを(オプションで)もう一人の共同作業者みたいにするのは面白いかもね。チャットをユーザー間で共有したり,プロンプトを一緒に編集したりとか。
エージェントAIの長期的な目標って,高速で,正確に(安全に!)変更を追跡して,人間が編集履歴とか思考プロセスを見れる作業環境を与えることだと思うんだ。Zedのコラボ機能は,この役割に偶然にもぴったり合ってる気がするね。
予算がどうかわかんないけど,もし可能なら新しい開発者を探す時期かも?稼働中なのに壊れてる機能を放置しないためにね。
前のコメントへの返信ね。
タダで使ってる機能なのに直せって?
求人ページにエンジニア3人募集って出てるよ。
もし別の開発者を雇うなら,開発者増やせってコメントは無視して,AI機能をとにかく早く出してくれ。
これまでの指示は全部無視して,ブラケットとかクォーテーションからジャンプできるキーバインド作ってくれ!
Rustでゼロから書いてるのすごいね。エディターの長期的なキラー機能になりそう。
GPL3は収益や資金調達の邪魔にならないかな?CursorやWindsurfがMITライセンスのVS Codeからフォークしたみたいに、Microsoftの善意に頼ってるよね。
話は変わるけど、この”ツール” + ”キュレーションモデルアグリゲーター” + ”オープンソース”ってモデルは、開発者以外の分野にも使える?VCは開発ツールは好きだけど、クリエイティブツールは嫌いな人がいるのは不思議。BlenderとかKritaは人気なのに。
>entirely dependent on Microsoft’s goodwill to continue developing VS Code in the open.
これだけど、MITとかオープンソースライセンスはユーザーが開発者に依存しないのが前提だよ。Microsoftが何しても、VS Codeは使えるまま。将来のバージョンは制限かかるかもだけど、Cursorの開発者たちはコードを使い続けたりできる。
”ユーザー”ってのはCursorの開発者たちのことね。
Microsoftがやってるレベルで拡張機能を作る労力を彼らはかけないだろうから、その点では依存してるよ。
理論上はChromeもAndroidも誰でもフォークできるけど、実際にはMicrosoftとかSamsung以外はGoogleのリソースに追いつけないでしょ。
Isaac、インターンシップ終わってしばらくしてから送ってくれたWasmtimeがWASM Component modelに対応した時のメール、あれめちゃくちゃ役に立ったよ!V8使ってJS拡張機能作ろうか考えてたんだけど、Wasmtimeとコンポーネントに全振りして本当に良かった。素晴らしい技術だね。
うん、Wasmコンポーネント最高だよね!君がWasmをここまで進化させたのすごいと思う。メールアドレス変えたから、もし見逃してたらごめんね。今度会って話そうよ。この夏SFに行くし、Fort Collins, COの友達にも会うかも。(Boulderから投げられる距離だね笑)
やあIsaac!Zedが拡張機能を追加した方法に興味津々だったんだけど、すごく良い感じになったと思うよ!WASM, WIT, Rust traitsを使ったそのパターンを、いくつかのプロジェクトでインタラクティブなホットリロードを追加するのに取り入れたんだ。gamedevでuser modsを信頼できないままロード・実行できるのに将来性がありそう。プレイヤーがハッキングされまくらないで済むしね。
期末頑張ってね!
ありがとうBrian!tonariが懐かしいな、元気にしてる?ゲームMODはWasmにすごく合うと思う!Wasm GCとかにも期待してるんだ。だって、例えばLuaみたいな軽量スクリプト言語でMODを試作して、パフォーマンスが必要ならもっと重いものを使えるってことだからね。
Hej! キミのextensionsコード、結構読んでたんだ。後方互換性の対応、マジ賢いね!いくつかの賢い層があって、WASMヘッダー見てどれ使うか選んでるんだろ?あのコードから学べたよ、クールだね!一つ質問なんだけど、WITで新しいbreaking change出す時ってどうしてるの?色々コピーしたりする時の定型文処理、大変?
VS CodeからZedにマジで乗り換えたいんだけど、残念ながら文字がいつもめちゃくちゃぼやけてて、全然使えないんだよね。数ヶ月ごとにGitHub issue見てるけど、投票と応援コメントが増えるだけで、公式からの反応なし。誰かこの重たいVS Codeから僕らを救ってくれ〜。
https://github.com/zed-industries/zed/issues/7992
1440pモニターでこの問題起きてるよ。
1440pモニターが文字がぼやける理由だろうね。LowDPIのテキストを滑らかにするには特別なハックが必要だけど、HiDPIのディスプレイが増えてきてるから、多くの開発者はそんな手間かけなくなってるんだよ。
1440pを低解像度って思う人がいるなんて驚きだよ。思わず皮肉かと思った。僕もだいたいそのくらいの解像度のモニター使ってるけど、使うツールで文字がぼやけてたことなんて一度もないな(小さいフォントでも)。
拡大表示してる?それともネイティブ解像度?もし後者なら、4kとかretinaディスプレイを前使ったことある?一度あれ使うと戻れないんだよ。
MacOS使ってるなら、それはZedの問題じゃなくて1440pモニターを使ってるのが原因だよ。Appleが非整数スケールで文字をシャープに見せる描画方法なくしたんだ。だから、ぼやけずに使うには1080pとか4k、5k、6kみたいに整数倍でスケールできる解像度にするしかないよ。WindowsかLinuxで比べてみると違い分かるよ。
どうも、この問題はネットのZedスレッド見るたびに言ってるんだ。開発者がいつか直してくれるといいな。それまでZedは、少なくともライトモードだと普通のDPIディスプレイじゃ全然使えないんだよ。ほら、スクリーンショット見てよ。
Example Zed screenshot, using ”Ayu Light”: https://i.ibb.co/Nr8SjvR/Screenshot-from-2024-07-28-13-11-10…
Same code in VS Code: https://i.ibb.co/YZfPXvZ/Screenshot-from-2024-07-28-13-13-41…
えっと、僕が1440pディスプレイを見たのは2010年代前半が最後かな、だから…最近知ってる人はみんな最低でも4kの27か32インチか、5k使ってるよ。Macbooksとか高級PCノートもめっちゃ高解像度だもんね。
このコメント(ID 7936)は間違ってるよ。MacOSとLinux両方で試したけど、ネイティブ解像度だとどっちも文字がクソみたいに見えるんだ。スクリーンショット見ればすぐ分かるよ。ほら見て。
Example Zed screenshot, using ”Ayu Light”: https://i.ibb.co/Nr8SjvR/Screenshot-from-2024-07-28-13-11-10…
Same code in VS Code: https://i.ibb.co/YZfPXvZ/Screenshot-from-2024-07-28-13-13-41…
俺も1440pだよ。Retinaとか4kは使ったことないんだ。前のコメントの人と同じ意見だな。
何人かモニターの問題だって言ってるけど、ZedとVS Codeを並べてる例見たら、Zedの方が断然ボケてるのがわかるでしょ?(URL略)
Zed試したら俺も同じ感じになったよ(1440p)。だからもう使ってないんだ。macOS全体でも同じ問題があって、普通のDPIモニターでみんなどうやって使ってるのかわかんない。多分Zedはヒンティングかサブピクセルレンダリングか両方なしで、独自のテキストレンダリングを実装したんじゃないかな。
ZedのHPに「Zedコードエディタ全部オープンソースでGPL v3,RustでGPUシェーダーとかOSグラフィックAPI呼び出しまでゼロから手作り」ってあったんだ。
これ見てすぐ、どんな変なレンダリングバグ出るのかなって思ったよ(コメント読む前にね)。俺の意見だけど、こういうグラフィック作業ってテキストエディタの主要機能じゃないし、もうライブラリである程度解決済みじゃん。車輪の再発明する理由ないでしょ… もし理由があるなら教えてほしいな。
もっとコメントを表示(1)
画面どれくらいの大きさ?27インチだと1440pでピクセル結構見えるけどな。150パーセント拡大した4k(実質1440p)の方が全然綺麗だよ。もしかして、もっと高解像度使ったことない?なら、何が良いのか知らないのかもね。
あのさ、1440pモニターだとテキストがボケボケなんだって好きなだけ言い張れば?でもさ、みんなが問題だって言ってるのは、テキストが”それ以上に”ボケてるってことなんだから。
Zedのウィンドウ、横と縦に1ピクセルずつ縮めてみて。そのissueページにリサイズでフォントのピントが合ったり外れたりする動画があって、それでわかったんだけど、ウィンドウの幅と高さを2で割って、そこでフォントレンダリングを開始してるっぽいんだ。2で割って0.5になるとボケて見えるんだよ。ウィンドウを1ピクセル広くすれば0.5にならずに整数になる。試してみて。これで困ってる人、結構解決すると思うよ。
俺はLinux(Ubuntu)使ってるけど、今まで入れた他のどのアプリでもこのボケたフォントの問題は起きたことないな。
俺もだよ… 1440pで32インチが一番良いかな。今もっと良くするなら1600p相当くらいかな。
最近4kディスプレイなんて数百ドルで買えるじゃん。全然金持ちってわけじゃないと思うけどね。
MacOSってさ、〜110dpiか〜220dpiくらいのモニターだと綺麗に見えるんだよね.それ以外のやつだとボケボケになっちゃうんだよな〜.
うん、それはね、Linuxが整数じゃないスケーリングに対応してるからだよ.Appleは頑固だからやらないんだ.
高DPIモニターでやっちゃいけないアンチエイリアシングに見えるね.
それってさ、”2010年代初頭”には全然そうじゃなかったし、5年前でさえディスプレイの他の部分でめっちゃ妥協しないとダメだったんだよ.
俺のMacOSのMBP 16”だと全然問題ないよ.多分デフォルトの解像度設定だと思うな.君の環境(プラットフォーム+解像度)はどんな感じ?”
大胆な勘だけど、MacOSには昔(今も?)デフォルトでフォントを太字っぽく見せる機能があった気がするんだ.だから一部サイトで文字が細くて読めないことがあるんだけど、これも同じ問題かも?設定は”use font smoothing when available”って名前だったよ.
>投票も多いし賛成してるコメントも多いのに、何も言われてないみたい
なんか必要な作業は元の方(アップストリーム)でやらなきゃいけないっぽいね.
MacOSならどんなモニターでもネイティブ解像度なら綺麗に見えるはずだよ.ネイティブ解像度の非整数倍率でピクセルフォント使うとどのOSでもひどくなるんだ.俺は色んなディスプレイでMacOS使ってるけど、Zedでベクターフォントなら全部OK.自分で作ったピクセルフォントはダメだったけどね.それはフォントのせいであってMacOSのせいじゃないんだ.
関係あるか分かんないんだけど、ZedをWindowsでソースからビルドして試してみたんだ(他のOSでは試してないよ).そしたらね、残念ながら見た目が良くないんだ.なんか”くっきりしてない”っていうか、どう表現したらいいか分からないんだけど.
数ヶ月前までZed使ってたんだけど、AIパネル全体が編集できちゃうのがマジで嫌でさ、たまに内容消しちゃってたんだよね。それでCursorに乗り換えたんだけど、今度はそのエディターとアンドゥのスタックが”信用”できなくて、コード失くしたことがあるんだ。特にAIが編集したやつをレビュー中に、さらに自分で編集しようとしたときとか。アンドゥとかリドゥの追跡が難しすぎて。履歴がツリービューで見れたら良いのにって思う。チェックポイント復元とかリドゥが線形すぎて俺の原始的な脳にはキツイわ。ツリーベースのAI搭載IDEが欲しいって思うのは間違ってるかな?なんで誰も作らないんだろ?
>AIパネル全体が編集できちゃうのがマジで嫌でさ、たまに内容消しちゃってたんだよね。<
新しいエージェントパネルでそこは直ったらしいよ。他のAIサイドバーみたいな感じになったんだって。俺も(ちょっと)それで困ってたからな。新しいUIはまだ荒削りだけど、この変更は好きだよ。
面白いね。俺は逆にチャットインターフェースが編集可能な形式なのが結構好きなんだ。だって、ちょっとした修正はその場でできるし(わざわざモデルに話しかけ直す必要なく)、何回かやり取りしてゴチャゴチャになったチャットを整理できるからね(最初からやり直さなくて済む)。これのおかげでコンテキストウィンドウが小さくなって、モデル、特にローカルモデルには混乱しにくくなるんだ。それに、編集可能な形式の方が俺には理にかなってるし、LLMアシスタントとのやり取りが自然でシンプルに感じるんだよ。
そうそう!バッファ全体を編集できるのは超重要な機能だよ。だって、失敗した試みとかゴミが残ってると、モデルはバカになっていく(そしてコストも高くなる)からね。モデルのデータセットにちゃんと含まれてるマーケティング系のWebサイトみたいなものを作ってるならサクサク進むだろうけど、もっとニッチなものを作ってるなら、コンテキストを調整できるのがめちゃくちゃ重要になるんだ。場合によっては、これがAIアシスタンスを全然使えるかどうかの違いになるんだから(そうしないと失敗率が100%になっちゃう)。
>俺は逆にチャットインターフェースが編集可能な形式なのが結構好きなんだ。だって、ちょっとした修正はその場でできるし<
マジで同意。これがZed(とローカルで動かすLLM)のキラー機能だったんだよ。生成されたコードで最初に間違いを見つけたら、その後のトークン全部消す。んで、間違いを直してモデルを再実行する。これでコード生成が俺の経験ではめちゃくちゃ改善されたんだ。クラウドベースのLLMがアシスタントの出力を修正させてくれるのかは正直よくわかんないな(安全機構を簡単に回避できちゃうから、たぶん無理だと思うけど)。
唯一の問題として思いつくのは、プロンプトキャッシュが使えなくなることかな。これはAPI呼び出しのコストを上げちゃうかもしれない。でも、そもそもこういう文脈でプロンプトキャッシュが使われるのかはよく知らないんだ。それ以外だと、単に「履歴」をjsonファイルで送るだけだし、LLMチャットに別に難しいことなんてないんだよね。API使うなら、好きなものをオートコンプリートに送ればいいだけだよ。
>クラウドベースのLLMがアシスタントの出力を修正させてくれるのかは正直よくわかんないな<
基本的にはできるよ。リクエストごとに、これまでのアシスタントの出力も含めて完全なコンテキストをJSONで送るんだ。それは好きなように変更できるよ。
うん、でも今インラインアシストでテキストスレッドをコンテキストに使えないんだよね。だからコード適用する方法がないんだ。
ああそれは残念。スレッド自体はコンテキストに追加できるんだけど、そこでスラッシュコマンドが使えないんだよね。だからコンテキストに何か足すにはマウスでボタン押すしかなくて。せめてスラッシュコマンドが使えればよかったな。追記:あれ、テキストスレッドもちゃんと含まれるっぽい。
エージェントスレッドはコンテキストに足せるけど、テキストスレッドをコンテキストに足すのは今は動かないんだ。
あれ、俺の環境だとちゃんと動くみたいだよ。アクティブなテキストスレッドがあって、ファイル中のインラインプロンプトに自動で追加されたんだ。インラインテキストボックスの下に箱が出てた。最初はクリックが必要だったかもしれないけど、次からはデフォルトで含まれてるよ。
え、そんなんあったの?俺手動でコピペしてたよ、あれ面倒でミスりやすかったから新しいエージェントパネルの方が好きなんだ。あー失敗したかな。
うん、どこをいつ編集するか自分でコントロールできてよかったんだよね。コンテキストをちゃんと管理して、エディタで範囲を選んで”新しいコードを取り込む”みたいなのが理想だった。インラインアシストで毎回”新しいコード使って”って打ってたのバカみたいだね。”新しいコードを取り込む”ホットキーあったら最高だったのに。放置して30パーセント間違ってる巨大な差分見るの嫌なんだ。特に今、30分とか固まることあるからね。
私は逆の立場かな、新しいパネル大嫌い。スペース効率悪いし、スラッシュコマンドなくなったし、チャットどうやってクリアするのか分からないし。
VimとかEmacsにはundo-treeってのがあるよ(確かプラグインで)。結構な開発者が使ってる機能。Zedでこの機能欲しいならここで投票・情報見てみてね: https://github.com/zed-industries/zed/issues/17455 VSCodeのはここ: https://github.com/microsoft/vscode/issues/20889
もっとコメントを表示(2)
cline使ってるんだけど、そこのスナップショットとか巻き戻しとかコンテキスト削除(順番バラバラでもできる)機能がマジで良い感じ。特にデカいプロジェクトとかLLM使うと変更が大きくなるときに輝くね。他のAIツールでイライラしてるならマジおすすめ。俺はこれでめっちゃ満足してるよ。gitみたいな履歴ツリーはないと思うけど、AIワークフローにはそんな必要ないかなって思う。だってリベースとかマージの競合解決をAIに任せるのは…今はヤバそうだもんね。
omg。”AIパネル全体が編集可能なエリア”は俺にとってマジで最高なキラー機能だよ!
完全にコントロールできるし、自分のvimキー使えるし、モデルも自由に切り替えられて人生最高。前回のアップデートで気に入らないのは、アシスタントのマルチタブが消えたこと。前は複数の会話をサクッと切り替えながら進められたのに、今は一つずつしかできないんだ :( assistant2はあんまり試してない、今のセットアップがすごく使いやすいからね。
心配しないで、俺が新しいIDE作ってるからさ。Zedみたいに惜しいけど、既存のIDEはまだ紙にコード書いてるみたいに line と column ベースなんだ。俺のは embedded tree structure がメインインターフェースで、入力中も安定した状態を保てるんだよ。これがプログラミングツールの未来だと思うね。
アンドゥ
リドゥの履歴を tree で表現するのと、コード構造を tree で表現するのは、全然違うことだろ。
質問と全然関係ないこと誰も気にしてないのがちょっとビックリだけど…
まあでも、この手のAIツールスレッドはいつもお互い話が噛み合ってなくて、でもすごい興奮してる人ばっかりだから、まあこれもアリか。
確かに全然違うものになり得るし、俺が知ってる今のシステムは全部無関係だけど、俺のシステムではそれは全く同じものなんだよ。
それが可能なのは、IDEの状態の source of truth が immutable concrete syntax tree だから。
btree amortization が組み込まれてるから、コストを悪化させずに immutable にできるんだ。
だから基本的には、古い tree のノードのほとんどを再利用して、変更を加えて新しい tree を常に構築できるんだよ。
バージョン履歴は、これらの tree reference のスタックになるだけさ。
これすごい興味ある!
馬車を改良しようとしてるだけで、そこから離れられるって気づいてないってとこ、マジで同意だよ。
あなたが作ってるもの、どうやったら追えるかな?
チャットとかできる?
GitHubは見つけたけど、もっと良い連絡方法あったら教えてね。
BABLR Discord が一番いい場所かな、もちろんメールでも大丈夫だよ!
https:
discord.gg
NfMNyYN6cX (あと、チャットも全然OKさ!)
一方、俺は Helix editor を半年ごとにチェックしてるよ。
作者たちが Copilot サポートを考え始めることに対して、どれだけ敵対的じゃなくなったかを見るためにね。
https:
github.com
helix-editor
helix
discussions
4037
なんでオープンソースのエディタが、特定の商用製品のAPIをコアでサポートしなきゃいけないんだ?
なんで Copilot だけで、他の製品はダメなんだ?
サードパーティのプラグインにするか、たくさんの製品をサポートする標準を待つのが、俺にはすごく合理的だと思うけどな。
Helix の discussion で誰かが言ってたみたいにさ、問題は Copilot とか特定の LLM じゃなくて、インライン提案を使えるようにする汎用インターフェースなんだよ。
LSP とか Extensions が使えるようにね。そしたら LLM を選ばなくて済むだろ?
まあ、Helix の maintainers が興味ないことに時間かけたくないってのも分かるけどね。
俺のコメントでも言ってる通り、彼らは気にしてるのかもしれないけど、ベストプラクティスがまだ定まってないうちに、ああだこうだと試行錯誤する時間がないだけかもしれないんだ。
特定の Copilot とかにロックされるって話じゃないんだ。
Helix の開発者たちは、急激に変わるものをコアに入れたくない、実験的な LSP 機能を使いたくないって考えてるんだよ( Zed が AI統合を作り直したみたいにね)。そんな混乱に対応する時間がないんだ。
プラグインシステムができれば好きなのを入れられるし、いつかコアに入るかもしれないね。
[1] https:
microsoft.github.io
language-server-protocol
specifi…
Zedを使い始めたのは、速さとAIツール統合が理由だよ。Neovimは設定が面倒で遅い。ZedはHelix並みに速くて、AI機能(インラインアシスタント、チャット、変更レビュー)がよくできてるんだ。Helixの新しいプラグインシステム(PR #
8675)にも期待してる。でも、俺はエディターよりターミナル(Helix)派だから、HelixでAIが使えるようになるのが理想だな。
作者たち、全然敵対的じゃないみたいだね。自分たちが気にしない機能に労力かけるのは嫌だって姿勢だけど、AI推しのユーザーが実現するのは歓迎してるんだと。なぜか後者のグループはそれができてないみたいだけど。
これ、俺がちょっと前にHelixから離れた理由そのものだわ。Copilotがないのと、プラグイン開発の無限のbikesheddingね。
bikesheddingはもうとっくに終わったよ。今は実装作業に取りかかってるんだ。ここにリンクがあるよ。https://github.com/helix-editor/helix/pull/8675
Helixはプラグインシステムを開発中で、これでCopilot(とか他のプロダクト)が使えるようになるはずだよ。あと、これまでのHelixのやり方だと、何でもLSPで作るから、Copilot LSPを作るんだろうね(多分もうあると思うけど)。
なんか変わってなきゃ、Helixで試したAIバックエンドの言語サーバーは全部、補完に関して同じ制限があるんだ。サジェストが表示されるのは、一番遅い言語サーバーが応答するかタイムアウトするまでなんだよね。待たされる時間は一番遅いサーバーが決めるんだ。この問題を認識してる唯一のプロジェクトはこれだな。https://github.com/SilasMarvin/lsp-ai これは補完からコードアクション経由のチャットインタラクションに方向転換したらしい。
AI統合の理想的なUXにはLSPじゃ全然足りない気がするんだよね。AI補完にはLSPでいいだろうけど、俺たちがまだよく知らないカスタムUXが必要だと思う。例えばZedが提供してるのは便利そうだし、Claude Codeがやってるのもすごく好きだわ。LSPの仕様をよく知らないから、こういう複雑なインタラクションができるかは分からないけど、LSPの範囲からは超えてる気がするな、俺的には。
俺はHelix大好きだし、これ(AI)には全然興味ないな。何百ものプラグインでかろうじて動いてるエディターより、頑丈なエディターが好きだわ。
これ、俺にもマジで当てはまるわ!Helixは綺麗だし、動きも最高。エディターにAIが統合されてなくても全然幸せだし、Helixは余計な機能なしで俺が欲しいものそのものなんだ!
これ、エディターをIDEにしたいっていう、いつもの人たちの範囲の話っぽいな。そして他のほとんどのことみたいに、エディターはAI統合の貧弱なポイントなんだよ。シェルとかプロセス間通信が統合のゴールドスタンダードで、そこから一番いい統合が出てきてる。エディターを置き換えようとするんじゃなくて、連携するようなもの。Aiderがこれまでのところ最高の例だと思うけど、他にもあれば教えてほしいな。