世界を動かす技術を、日本語で。

パロット・ライブ

概要

parrot.live は、 ターミナル上でアニメーションパリット を表示できるサービス。 curlコマンド だけで簡単に利用可能。 GitHubリポジトリ で公開、ソースコードも閲覧・改変可能。 多くのスターとフォーク を獲得し、人気プロジェクトとなっている。 関連プロジェクトや アニメーションフレームの提供者 への謝辞も記載。

parrot.live とは

  • parrot.live は、ターミナル上で アニメーションパリット(party parrot) を表示するサービス
  • curlコマンド を使い、どのPCからでも手軽に利用可能
  • アニメーションは terminal-parrot からフレームを取得
  • オープンソース としてGitHubで公開、誰でも利用・改変が可能
  • README.md などのドキュメントも整備

使い方

  • ターミナルで以下のコマンドを実行するだけでアニメーション表示
    • curl parrot.live
  • インストール不要、一時的な楽しみやデモに最適
  • Windows PowerShell 向けスクリプト(parrot-dance.ps1)も同梱

関連プロジェクトと謝辞

  • terminal-parrot プロジェクトからアニメーションフレームを引用
  • jmhobbs によるterminal-parrotへの感謝
  • Robert KochEric Jiang によるテスト・フィードバックへの謝辞
  • さらに多くのパリットやアスキーアートを cultofthepartyparrot.comascii.live で紹介

技術情報

  • 主要言語 はJavaScript(78.4%)、PowerShell(21.6%)
  • nginx.conf などサーバー設定ファイルも含む
  • package.json で依存管理、開発環境整備
  • GitHub上で183フォーク、4,000スター を獲得(2024年6月時点)

コミュニティと貢献

  • 12人以上のコントリビューター が参加
  • 誰でも フォークやプルリクエスト で貢献可能
  • GitHub Sponsors による支援も受付中

関連リンク

Hackerたちの意見

curlを使わなきゃダメだよ: > curl parrot.live そうじゃないと、parrot.liveがリダイレクトしちゃうからね(HNがそうしたから、リンクがparrot.liveになってる)。

そうそう: https://github.com/hugomd/parrot.live/blob/f349d2788fc47ac5f...

これ思い出した!テストが全部通った後に実行するコマンドラインユーティリティで、画面を飛び跳ねる虹色のユニコーンを作ったんだ。同僚たちが笑ってくれたから、まあ良かったかな。楽しい思い出だね。

今はAIにジャンプするユニコーンを表示するコードを書かせるだけで済むんだよね。プログラミングの魔法がなくなったなぁ!

いいね!進捗バーをニャンキャットに置き換えるIntelliJの拡張機能を思い出した。

これすごい!他にもこんなのある?

残念ながら、never.gonna.give.you.upのドメインは取れなかったんだ。(くそ、1991年にPDP-11で数台の端末を使って、こういうのを楽しんでたのが懐かしい。)

telnet towel.blinkenlights.nl

curl wttr.in

https://ascii.theater/

telnet telehack.com

smithers.elを思い出すなぁ https://gitlab.com/mtekman/smithers.el/

わお!これがフロントページに載ってるの見てびっくり。8年前に気まぐれで作ったんだけど、すごいことになったんだ。最近になって、トラフィックが急増してOOM(メモリ不足)が起きた時に、メモリリークがあることに気づいたよ。これまでに毎月数TBの帯域幅を消費してきた。ascii.liveを作ったのは、いろんなアニメーションを楽しむためなんだけど、PRをレビューする時間があまり取れなくてね。

おお、昔、同僚がゾイドバーグが踊ってるやつを持ってたけど、今は死んじゃってるみたい。多分、ドメインを更新しなかったんだろうな。彼はascii.liveを使ってたんだろうね!

GitHubの説明文にパロット絵文字が追加されたんだね!

これまでの数年間で、毎月数TBの帯域幅を消費してきたよ。Hetzner(またはトラフィックプランが優遇されてる他のところ)でホスティングしてるといいな。彼らは毎月20TBのトラフィックを提供してくれるから。

作者のGitHubの履歴、まるでコーディングマシーンみたいだね。

5月11日に何があったんだろう?

そのコミットの多くはプライベートリポジトリにあるんだよね。例えば、天気データを定期的にGitHubにプッシュして、コミット数を増やしてる人も見たことある。すごい数字を見たいなら、これをチェックしてみて:https://committers.top/

日中のちょっとした空き時間に、スマホでコーディングエージェントとやり取りしてるんだけど、毎日しっかりダークグリーンを出すのはほぼ不可能じゃない。これらのチャートは、個人がどれだけコードを書いてるかを判断するにはあんまり役立たなくなってるけど、業界全体の生産性向上を測るにはいい指標かもね。

うーん、curlもフロントエンドもあんまり詳しくないんだけど…これってどうやって動いてるの?curlの変なデフォルトログインみたいなもの?

curlはHTTPレスポンスをダウンロードして、それをターミナルに表示するだけだよ。サーバーはレスポンスをストリーミングして、70msごとに動画のフレームを送信するんだ。レスポンスの中で制御文字を送って、ターミナルをクリアしたり色を変えたりしてる。

レスポンスはASCIIエスケープシーケンスを使ってターミナルを制御してると思う(curlはそのレスポンスをターミナルにパイプしてるだけだね)。

短い話:これはただのウェブサイトだよ。ブラウザでparrot.liveに行くと、自動的にプロジェクトのGitHubページにリダイレクトされる。コードは103行目にあるよ:https://github.com/hugomd/parrot.live/blob/master/index.js#L... でも、ブラウザのユーザーエージェントを'curl'を含むように変更すると、リダイレクトのロジックが発動しないから、ブラウザ内でサイトにアクセスできるんだ。やり方はこうだよ: * Chromeを開く、 * Chrome内でChrome Dev Toolsを開く、 * Chrome Dev Toolsのネットワークタブに行く、 * ネットワークタブ内の「More Network Conditions」をクリック、 * 「User Agent」セクションに行って、括弧なしで'curl'と入力、 * ネットワークタブを開いたままでparrot.liveにアクセスすると、ブラウザにASCIIアニメーションが表示されるはず。

これこそがHacker Newsのために作られたものだね。

Raspberry PiのSSHセッションがクラッシュしたわ。

面白い小さなオウムだね!スナップでインストールするよりもいいし(スナップは好きじゃない)。好奇心から、私のざっくりした測定では帯域幅の使用量は約17 KiB/sだよ。今の時代、これは無視できるって言う人もいるけど、そんなにおかしくはない(1時間で約61 MiB)。でも、効率を考えるとちょっと気になるな。単に文字を表示するのは、コンピュータ上でコードを実行するよりリスクが低いと思う。

まあ、場合によってはターミナルのエスケープシーケンスを悪用してコードを実行できることもあるから、ランダムなウェブサイトをcurlするのはあまり安全だとは思わない方がいいよ!