カテゴリー
Uncategorized ネットのサービス

scaffoldy – よくあるwebサービス構成の Docker Compose ファイルを作ってくれるジェネレータ

Scaffoldy は、選択したサービスを組み合わせた webサービスの Docker Compose 設定ファイルを作ってくれるwebサービスです。

対話式のフォームに回答していくだけで、docker compose で動作する yml ファイルが作られます。現在選べるのは以下のような項目

  • 言語/環境 – Python / Node.js / その他
  • .gitignore 等 git の設定
  • データベース – MySQL / MariaDB / PostgreSQL / MongoDB
  • データベース管理web UI – phpMyAdmin / pgAdmin / Mongo Express
  • キャッシュサーバ – Memcached / Redis
  • メッセージング – RabbitMQ / NATS
  • メトリクス – Prometheus / Grafana
  • その他 – Clickhouse / ElasticSearch / Mailhog

選択が終了すると、docker-compose.yml を含んだプロジェクトファイルをzipにしたものをダウンロードできます。これを展開して実行すると、何かしら最低限のものは動作するということです。

version: "3.8"
services:
    app:
      build: ./akky-scaffoldy/
      container_name: akky-scaffoldy-node
      ports:
        - 1337:1337
    mysql:
      image: mysql
      container_name: akky-scaffoldy-mysql
      working_dir: /application
      volumes:
        - mysql:/var/lib/mysql
      environment:
        - MYSQL_ROOT_PASSWORD=dbpass
        - MYSQL_DATABASE=mysqldb
        - MYSQL_USER=dbuser
        - MYSQL_PASSWORD=dbpass
      ports:
        - "3304:3306"
    phpmyadmin:
      image: phpmyadmin/phpmyadmin
      container_name: akky-scaffoldy-phpmyadmin
      restart: unless-stopped
      ports:
        - "3305:80"
      environment:

実際には動作するものも、エラーが出て動かないものもありました。生成された yml を見ると、最低限動かすための表記という感じではあります。サンプルアプリも配置できますが、Hello, World を表示するだけですね。選択したサービス群を連携させて呼び出すようなものは作られません。まあ組み合わせの数が爆発するのでそのあたりまでちゃんと作るのは大変だと思いますけど。

Docker Compose を初めて使う時の参考とか、まったく使ったことがないツールを簡単にセットアップして、そのあと勉強して改良していく際のスタート地点とするぐらいなら便利だし、それぞれのサービスに詳しい利用者の貢献が集まれば便利そうですね。

via Hacker News

カテゴリー
ネットのサービス

yare.io – JavaScript で艦隊を動かし戦わせるゲーム

yare.io は、Javascriptプログラムを書いて宇宙戦を戦わせるwebサービスです。

ゲームは一対一の戦い、スピリット(spirit)というユニットを操作して、自分の基地を守りつつ敵の基地を破壊することが勝利条件です。

操作して、と言いましたがマウスなどで直接操作するわけではなく、JavaScript でスピリットがどのように振舞うかをプログラミングし、フィールドに投入して戦わせます。

チュートリアルがあるので、通しでやってみました。

基地の最寄りの恒星でエネルギーを補給させ、それを基地へと持ち帰らせます。

エネルギーをある程度運びこむと、基地から新しいユニット(スピリット)が誕生するので、自分のすべてのユニットを配列で回し、使えるユニットを増やしていきます。

自給ができるようになったら、一定範囲を索敵し、攻めてきた敵のスピリッツからエネルギーを奪うことで撃破します。チュートリアルではここまで。

この後は実際の戦闘フィールドに参加します。他のユーザーを待つこともできますが、相手が見つからない時や練習用に bot のプレイヤーも用意されています。

試しに増やした艦隊の半分を敵の基地へ送るプログラムを書き投入してみたのですが、待ち受ける敵の艦隊に各個撃破されてしまい散々でした。チュートリアルから実戦に行くには、もう少し凝ったプログラムを作らないといけなさそうです。

ゲームシステムはまだまだ荒く、スピリットの種類やルール、使える関数もこれから増えていくそうです。Discord チャンネルで作者や他プレイヤーと雑談することができ、現在の制限事項や今後の予定などについて知ることができます。

カテゴリー
ネットの事件

Curl プロジェクトが Travis-CI 無料枠を外されそうだとして対応を開始

URL転送ライブラリとそのコマンドラインツールとして有名な Curl プロジェクトの GitHub issues で、travis-ci の無料枠が使えなくなる(travis-ci shuts down the free tier for us)というチケットが上がっています。

有名CIサービスである travis-ci にはオープンソースをサポートする無料枠があり、GitHub 上の多くの OSS プロジェクトで travis-ci が利用されているのもそれによるものです。

curlプロジェクトでも 2013 年から travis-ci で CI を回しており、現在は33個のジョブが走っているそう。今年の3月までは、特別にCPUブーストもしてもらえていたということですが、このブーストは予告なしに止まっていたそう。

travis.ci は今 travis-ci.org から travis-ci.com へのドメイン移行を進めているのですが、この移転でオープンソース無料枠を再度申請したいが、他のプロジェクトに対するメールでの返答にあった「無料枠を使える条件」が引っ掛かりそうだ、とCurl作者のダニエル・ステンバーグ氏(Daniel Stenberg)が述べています。

  • 申請者はプロジェクトのリードかレギュラー貢献者である
  • プロジェクトは3か月以上の歴史を持ちアクティブである
  • プロジェクトはオープンソースの定義(OSD)に合致する
  • プロジェクトは営利企業や組織にスポンサードされていない
  • プロジェクトは有料サービスやソフトウェアの有料版の配布をしていない

ステンバーグ氏はwolfSSL社に属し、勤務時間中にCurl プロジェクトの管理やサポートをしてよいことになっているのですが、これが上記の5つの4番目にどうしても抵触してしまうだろうということ。

氏は「他の無料枠のあるCIサービスへの移行」「CIツールをセルフホストして使う」「寄付を募ってTravis-ci を有料枠で使い続ける」などの取りうる選択肢を示し、意見を求めています

コメント欄や twitter ではすでにいくつかの他のCIサービスから引っ越しの提案が出たり、CIツールの変更についての作業を手伝いたいという人も出てきています。

今のところ、あくまで他のOSSプロジェクトに対しての Travis-ci の返答から出ている話のようで、Curl プロジェクトの CI が止められているとか止められそうというわけではなさそうです。ただ新しいルールがあるならそれに違反したまま使い続けるのは後日のリスクとなるかもしれないですね。

コメントの中には、「Travis-ci は内部で Curl を使ってるだろう。Travis-ci が Curl を無料で使えるように、Curl が Travis-ci を無料で使えるよう例外扱いしてもらえばいい」と言ったものもあります。これは Travis-ci も応じるかもしれませんが、その他の多くの同様の OSS プロジェクトについてこのような例外が得られるわけではないですね。

OSSプロジェクトを支援するためにOSS開発者を社員にしたり、スポンサーとして援助したりというケースは多く、そのおかげで続いているOSSプロジェクトもあるでしょう。Travis-ci を含めた各CIサービスも無料枠の abuse などで無料枠の継続がたいへんな状況になっていることもあり、この後も他プロジェクトで同じような話が出てくるのではと思います。