カテゴリー
fun

Gitをtwitter代替に使う[ネタ]

diracdeltas/tweets は”janky twitter replacement”(ジャンクなツイッター代替)を名乗るように、Git を使って twitter 風のフォロー・メッセージ発信を行うプロジェクトです。

作者のyanさん(@bcrypt)の紹介ツイート(これはtwitter上)

『「分散化」されたツイッターの「代替」を作ってしまった』

“decentralized”で”alternative”というのは、イーロン・マスク氏のtwitter買収と管理強化(?)で揺れているツイッターに対する代替という意味ですね。

プロジェクトをfork することで参加でき、自分のフォークでのコミットメッセージが自分の tweet に相当します。

プロジェクトを fork している他のユーザーを選んで、あるいは全員を remote add にて「フォロー」し、rev-list で「タイムライン」を表示できます。

タイムライン表示

Git ベースであればGitHubでなくても動くでしょうが、このメインのリポジトリは GitHub 上でホストされていて、fork したユーザーのリストをGitHub APIで取ってきてその全員をフォローすることができるというスクリプトもついてきています。

また、git コマンドでの投稿やタイムライン表示が面倒そうなので、もっと簡単に実行できる Makefile の wrapper もあります。

コミットで tweet するという仕組みは twitter のようにスケールしませんし、GitHub の目的外利用でもありそうなので本気で広まったら問題になりそうですけど。

via Hacker News

カテゴリー
ゲーム

Oh My Git! – git の使い方を学べるゲーム

Oh My Git! は、バージョン管理ツール git の使い方を学ぶためのゲームです。

中央にgitツリーのグラフが表示され、手元にはgitコマンドを表すカードが配られます。

カードを使わずに右側のターミナルでコマンドライン操作することも可能。お題で出てきた課題を満たすためのカード/コマンドを正しく実行すると、右側の達成項目が緑に反転し、すべて達成すればそのレベルはクリアです。

commit を指定し、そこにカードを捨てることでカード上のコマンドを適用。

levels にあるステージ一覧から、好きな項目について遊ぶことが可能です。

カードを使っても解けますが、コマンドラインで解くと右端のボックスを黄色にすることができます。

ソースコードは GitHub で公開されていて、バイナリ版も Windows, MacOS, Linux 向けに提供されています。

テキストファイルで新たなlevelを自作することも可能で、必要な学習項目が無ければ追加することもできるようです。

作者の二人による紹介動画

git を学ぶためのサイトはこれまでもいろいろ出ています。それだけ初めて使う時は難しさがあるんでしょうね。また、普段gitを使っていても自分が日常的に使わないコマンドについては全く知らない、なんてこともあるので、このようにlevelで網羅されているとそういった知らないコマンドの勉強にもなりそうです。

via Hacker News

カテゴリー
データ可視化

metro-clojure – gitリポジトリで地下鉄路線図を作るClojure製ツール

gjhenrique/metro-clojure は、鉄道路線図をgitのコミット/ブランチログで再現するためのオープンソースツールです。

路線と路線に所属する駅名を並べた json ファイルが入力となります。サンプルとしてサンパウロとニューヨークのデータがついてきてるので、それを参考にします。


[
{
"name": "銀座線",
"stations": [
"渋谷",
"表参道",
"外苑前",
"青山一丁目",
"赤坂見附",
"溜池山王",
"虎ノ門",
"新橋",
"銀座",
"京橋",

データをツールに食わせると、git コマンド群を発行するシェルスクリプトを作ってくれます。


$ boot generate-git-commands -c tokyo -f tokyo.sh

大江戸線のような循環があると、git グラフが作れないためツールはエラーで止まります。そりゃそうですね。

都庁前の循環を外して再度挑戦するも、東京のいたるところの乗換駅でエラーが… あちらとこちらで乗り換えができれば、循環だらけにもなりますね。


# 渋谷 銀座線 半蔵門線 副都心線
git checkout --orphan "銀座線"
git commit --allow-empty -m "渋谷"
git branch -f "副都心線" HEAD
git branch -f "半蔵門線" HEAD
# 代々木上原 千代田線
git checkout --orphan "千代田線"
git commit --allow-empty -m "代々木上原"
# 代々木公園 千代田線
git commit --allow-empty -m "代々木公園"
# 明治神宮前 千代田線 副都心線
git merge --strategy=ours --allow-unrelated-histories --no-ff --commit -m "明治神宮前" 副都心線
git branch -f "副都心線" HEAD
# 北参道 副都心線
git checkout "副都心線"
git commit --allow-empty -m "北参道"
# 方南町 丸ノ内線分岐線
git checkout --orphan "丸ノ内線分岐線"
git commit --allow-empty -m "方南町"
# 中野富士見町 丸ノ内線分岐線
git commit --allow-empty -m "中野富士見町"
# 中野新橋 丸ノ内線分岐線

「赤坂見附-永田町」のような別名の乗換駅の同一化を諦め、さらにエラーを起こす乗換駅を同一にしないよう入力データを修正していって、やっとなんとかエラーを出さなくした結果のスクリプトを、新しい git レポジトリに突っ込むことで、部分的には正しいところもあるぐらいの、東京の地下鉄gitグラフ(東京メトロ+都営地下鉄)を作ってみました。

git log で見るとこんな感じ

東京の路線図は循環しすぎなので、使用例としてはあまり良くないかもしれませんね。

もともとパリの路線図をGitHub 上で再現した2015年の作品があり、metro-clojure はこのような作品を簡単に作れることを目指して制作されたようです。

このツールを使えば、地下鉄の路線図以外の何か身近な有向グラフを git グラフで表現することができますね。

via From metro connections to a git graph