Hatena::ブログ(Diary)

shouhの日記

2016-05-25

Github は一人ぼっちでも楽しめる

Social Coding を謳う Github は、複数人で協調して使うことで真価を発揮する。実際、Github を褒めている人や、Github で楽しんでいる人の記事や活動を見ても、複数人で活動することをほぼ必ず前提としている。逆に、ぼっちで活用していたり楽しんでいたりという事例はほとんどない。

ぼっちは Github を活用したり楽しんだりすることができないのだろうか。Social Coding と謳われているとおり、Social でなければならないのか。

そんなことはないんだ、ぼっちでも活用できるし楽しめるんだ、ということを示したい。

1. ぼっちが Github で満たせること

まず始めに、Github を利用することでぼっちが何を満たせるかについてまとめる。

分類したところ、以下があるのではないかと思う。

  • 便利・快適
  • 所有欲(自分の城をつくる快感)
  • 承認
  • 学習・娯楽

それぞれについて簡単に説明しておく。

「便利・快適」を満たすとは、移動を便利にするために自転車自動車を使ったり、快適に過ごせるようソファーやカーテンを設置したりするように、何らかの便利や快適を追い求めることである。Github を使うと、プログラムコードやメモといった「テキストコンテンツ」を便利かつ快適に管理できるようになる。

「所有欲」を満たすとは、部屋のインテリアを工夫したりフィギュアコレクションを整備したりするように、自分が過ごす空間や自分が所有する物品を着飾って楽しむことである。自分の城を作り上げる楽しさとも言えようか。Github を使うと、自身のテキストコンテンツをショーケースのように飾り立てることができる。

承認欲」を満たすとは、誰かから関心あるいは感心されることで自分を満たすということである。Github を使って自身のテキストコンテンツを公開し、それを他人に見てもらうことで「すごいね」と関心あるいは感心してもらえる。

「学習・娯楽」を満たすとは、何らかの勉強をしたり暇つぶしをしたりするということである。Github を使うと、プログラマ達のノウハウから流行りの OSS 動向まで色んなことを勉強でき、また純粋に好奇心を満たすツールやコードや人材と出会うといった暇つぶしを行うこともできる。

以上の四点を満たすことができれば、Github を十分活用できていると言えるし、楽しんでいるとも言えるだろう。実際、これらをほとんど満たしている私自身は、とても楽しんでいる。楽しんでいるからこそ、このような記事を書くに至った。

以降では、それぞれの観点について、Github をどのように使って満たしていくのかというアイデアや実例を紹介していく。

2. 便利・快適を満たす

Github には、テキストコンテンツの管理や編集を便利かつ快適に行える仕組みがある。具体的に何ができるのか見ていこう。

2-1 バージョン管理

Git を使うと、テキストコンテンツをバージョン管理できる。いつ、どのファイルに対して、どんな修正をしたかという履歴情報を記録し、後で閲覧したり復元したりすることができるようになる。

しかし Git だけでは履歴情報を思い通りに見るのは難しい。事実、多数のコマンドを覚えたりツールインストールしたりしなければならない。

Github を使うと、ブラウザ上で履歴情報を見ることができる。GUI の見方使い方は要学習だが、コマンドやツールよりは圧倒的に楽である。また、そのポテンシャルについても強力であり、差分をカラー表示してくれたり、ファイル名をインクリメンタルサーチしたり、履歴に対して注釈を付けることだってできる。

要するに自分が活動してきたことの全てが記録されており、容易にアクセスできるという安心感があるのだ。

ただし「この履歴に戻したい」といった高度な操作については、Github だけでは行えない。Git で、黒い画面で頑張らねばならない。が、たいていのことは既に先人が知見をストックしており、ググればやり方がヒットする。困ったらその時に行動すればいい。たいてい何とかなる。

TIPS: 履歴を見易くかつ活用しやすくするには、コミットメッセージやコミット粒度を日頃から工夫することが大事である。が、ぼっちで使うならあまり気にしなくてもよい可能性がある。私の場合、履歴を見る機会はほとんどないので、かなり適当に済ませることも多い(Updateの頭文字を取って「u」一文字で固定するとか)。

2-2 オンラインストレージ

Githubオンラインストレージ――要するにファイル置き場としても活用できる。

まずは Dropbox との違いを挙げる。ファイル置き場としては、とても癖が強いことがわかる。

それでもあえて Github をファイル置き場にすることのメリットは何か。挙げてみよう。

もっとも上記メリットはあくまでファイル置き場としてのメリットにすぎず、実際は後述するように他観点でのメリットも多数ある。これらメリットを総合すれば、テキストコンテンツについては Dropbox を使うより Github をファイル置き場として使う方が良い、という結論になる(私はなった)。

TIPS: テキストを公開したくない、でも月額を支払うのは嫌だという場合、Github GistのSecret機能を使う 手もある。ただし、ここでいう Secret とは「URLがどこにも公開されない」というだけであり、URLさえわかれば誰でも内容を見ることができるので要注意。

2-3 ブラウザ上から気軽にメモを残す

Github には Wiki や Issue といった素晴らしい機能がある。これらはブラウザ上で自由に作成でき、Markdown という素晴らしいフォーマットが使え、さらにプレビュー機能も備えている。動作も軽いし、正直言ってその辺のメモツールより優秀かもしれない。

特に Issue については、検索やラベルやコメントといった仕組みもあり、工夫次第で色んな使い道がありそうである。

TIPS: Wiki や Issue のポテンシャルを調べたい場合は、テスト用のリポジトリを作って、そこで色々試すと良いだろう。お試しを終えたら、リポジトリを丸ごと削除してやれば恥ずかしい痕跡は残らない。(ちなみに Issue には削除機能が無いため削除するにはこの方法か、あるいは上書き更新するかしかない)

3. 所有欲を満たす

Github を使うと、部屋のインテリアフィギュアコレクションのように、自身のテキストコンテンツを着飾ることができる。具体的にどんなことができるのか、私自身のコンテンツを紹介することで示したい。

3-1. 自作ソフトウェアソースコード及び関連コンテンツ

Github を使うと自作ソフトウェアソースコードを公開できる。リポジトリを作り、そこにソースコードアップロード(push)すればいいのである。

ソースを公開するというだけでもなんだかカッコイイし、その気になればドキュメントを整備してもっとカッコよく見せることもできる。コミットメッセージに気を配れば履歴のレベルで美しさを表現できるし、タグ付けを工夫してリリース物件を配布することもできる。どう表現するかは自分次第だ。

私の例で言えば ffphrase あたりは結構頑張って美しくしたつもりだ(途中で飽きたけど)。

また、リポジトリWiki を備えているため、マニュアルFAQ、あるいは開発秘話なんかを書いてもいいだろう。私は tasconというTaskChuteのコマンドライン版みたいなツールのwiki に、自己満足丸出しで長々と色々書いている。

3-2. ウェブサイト

Github には Github Pages という、ウェブサイトを公開する仕組みがある。リポジトリに index.html など静的ファイルを置くだけでウェブサイトが公開されるという、素晴らしい仕組みだ。

私は Github Pages を用いて ソフトウェア公開サイト shouhmisc を作った。公開ソフトをただ列挙しているだけの味気ないページであるが、このページはリポジトリの内容から スクリプトで自動生成 している。また、自動生成じゃなくて純粋に HTML を書いて作った ソフトウェア詳細ページ なんてのもある。

これらのファイルは全て リポジトリ で管理している。リポジトリにアップするだけでウェブサイトが作れるというのは素晴らしいし、ウェブサイトの元ネタであるリポジトリ自体が公開されるという点もまた良い。「私はこんなスクリを書いて自動生成してるんですよ」ってのが示されているわけで、まるでフィギュアコレクションのショーケースを眺めているかのよう。自分のリポジトリでありながら、時々うっとりと眺めてしまうことがある。(自己満なので出来の良し悪しは期待しないでください。もっとスマートでクールに実現している人も腐るほどいます)

3-3. スクリプト

私は実用スクリプトやお試しスクリプトなどを集めたスクリプトリポジトリ Scripts を作っている。

コミット数を見てほしい。160525(Wed) 現時点で 300 だ。その下の帯をクリックして欲しい。PythonHTML など色んな言語が使われていることもわかる。まるでスクリプトを自在に操るプログラマのようなアクティブさが垣間見えはしないだろうか。これを見て私は優越感に浸る。

スクリプトとしても色んなものを用意している。WindowsPATH に通して色々省力化する Pathed commands は自信作だし、study_hogehoge という勉強用スクリもアップしていて「こまめに勉強してるんぜ?」アピールもできているし、 秀丸エディタ用の設定やマクロ もアップしてるし、さらには、ちょっとふざけすぎ感は否めないが Github API を扱うスクリ を作った上で、Github アカウントを持つ女性アカウントを集めたページ GGC(Github Girls Collection) なんてものも作っていたりする。

3-4. テキストを目次付きで集約した zakky

雑多なテキストコンテンツをまとめる用のリポジトリ zakky を作ってみた。ここにはビジネスアイデアから音ゲー日記まで色々ぶち込んでいる。ちなみにネーミングは 雑記 -> zakki -> zakky という感じだ。地味にお気に入り。

zakky の特徴は、テキストを全て Markdown で書いている(ゆえに Github 上で整形結果として閲覧できる)ことと、全テキストの目次ファイルを作っていることだ。目次の存在により、見たいテキストを探しやすくなる上、「私はこんなに書いているんだよ」という自慢を示すことにも成功した。ちなみに目次は md2toc.py という自作スクリで生成している。

その気になれば小説だって投稿できそうである。いつか試したい。

3-5. Issue で Tweet する issueet

Github の Issue 機能を使って Twitter みたいなつぶやきを実現してみた。それが issueet である。本当はもっと直感的な名前にしたかったのだが、Twitter の商標にひっかかるのでやむを得ずこうした。結果オーライでこのネーミングもお気に入り。

Issue は一覧性に富んでおり、個々にコメントを書いたりもできるので、ツイートシステムとしてはかなり優秀だと思う。不幸にも私はぼっちであるから誰からも反応が無いのであるが、それでも今は 100 以上のつぶやきを蓄積しており、Twitter のような外観を実現できているのではないかと思う。詳細は私のプロフィールページ https://github.com/shouh/ をご覧頂きたい。下部につぶやきがずらりと表示されているはずだ。(冷静に見ればかなり恥ずかしいが、楽しんでいる)

3-6. Github のマイプロフィールページ

既に上記したが、プロフィールページ自体もまた自分の作品になり得る。アバターを設定して個性を際立たせるのもよし、コミット数を量産して Contribution Graph(正式名称は知りません) をカラフルに彩って玄人臭を漂わせるのもよし、私のように issueet でたくさんつぶやいてつぶやきを表示するのもよし、と結構自分色にカスタマイズできるようになっている。

ん? Followers と Followings のバランスがおかしい? そこは見逃してください。ぼっちなんで。

4. 承認欲を満たす

自分の Github を見せることで他人の関心や感心を集め、承認欲求を満たすことができる。友達のいないぼっちにとっては、承認欲求を満たすという活動こそが社会活動に他ならないわけで、この側面は結構重要である。

本節では、どうやって承認欲求を満たすのかというアイデアや試行錯誤の結果などを紹介する。

4-1. 大事なのは擬似的に満たすこと

承認欲求というものは他人から反応されることで初めて満たされるものだが、Github、とりわけネット上ではそれは難しい。仮に誰かが凄いと思ってくれたとしても、わざわざ本人にそのことを伝えようとはしないからだ。

じゃあどうやって満たせばいいのか。擬似的に満たすのである。

私は Github でこんなものを作ってる。こんなにもたくさん作って、公開している――そういう成果を携え、宣伝する。そうすれば少しはアクセスがある。そのアクセス結果を以て「関心を持たれている」とみなせばいいのである。

幸いにも Github にはアクセス解析機能がある。リポジトリのページを開き Graphs をクリックし、更に Traffics を辿ると、Clone された数や訪問者数などをグラフで見ることができるのだ。

そもそも、別にこれらを見ずとも、宣伝したという事実さえあればある程度は満足できるものである。なぜなら、宣伝している以上、誰かの目には触れているはずで、その中には関心を持ってくれている人もいるだろうからだ。

そんな奴いるわけない? そんなことわかるもんか。事実はブラックボックスだ。だからこそ、いるだろうという楽観的な妄想を行う余地がある。

4-2. もちろん関心や感心を可視化する仕組みもありますよ

Github でいうと Follow や Star、Clone などがこれに該当する。

Follow とは、Twitter と同じようなものだが、特定ユーザーに対し「あなたに興味があります」とブックマーク追加することだ。人気のある人や、女性エンジニアなんかは Follower が多い傾向にある。

Star とはリポジトリブックマークに追加することである。Star の数が多いほど注目度が高いと言える。

Clone は、リポジトリを自分のローカルにダウンロードすることである。言い換えると、実際に動かしてみようと行動に起こしてくれたという意味である。

これらの指標が増えれば、それは間違いなく関心や感心を持たれていると解釈できる。何十もの値が集まれば、これほど楽しいことはないだろう。

が、現実はそんなに甘くない。Githubプログラマエンジニア向けサービスであるため、利用者も総じてプログラマエンジニアという「非常に目が肥えた人達」なのである。そんな人達に Follow される? Star をもらう? はっきり言おう、それは超難しい。

知り合い同士なら簡単に数を増やせる(私はぼっちなのでこれさえ難しいが)し、凄腕プログラマなら勝手に増えるし、女性でも顔写真を晒せば増える。が、これ以外の場合に数を稼ぐのはとても難しい。コードに少なからず価値と品質が必要だし、仮にそれらがあったとしても利用者に興味を持ってもらえねば意味がないわけで、興味を持たせるためのドキュメンテーション能力なんかも要求されたりする。ついでに言うと、ただ Github に公開しただけでは宣伝効果はゼロに等しいから宣伝行為も必要(自サイトにリンク貼っとくとか)。

とにかく難しいのだ。生半可な趣味グラマが太刀打ちできるレベルじゃない。Star で言うなら、窓の杜で取り上げられたことのある私でさえも InstantTextInserter が 3 というだけである。

また、Follower に至っては、プロフィールページを見ていただければわかるとおり、フォロー 120 に対してフォロワー 2 である。やばい泣きそう。

……Github可視化手段で承認欲求を満たすことは、とても難しい。

4-3. リアルな反応を探る

別の手段で承認欲求を満たすこともできる。プログラマを相手にするからいけないのであって、じゃあ非プログラマ――素人を相手にすればいい。

FacebookTwitter はやっていますか? ぼっちといえど、やっている人もいると思う。私は Facebook をやっている。ぼっちではあるが、知り合いは多く(若干悪目立ち&会社新人の時に立ち回りまくって友達数稼ぎまくった)、100人を超えている。やってない人は、ここの策は使えないので諦めてください。

ここまで書けば予想は付くだろう。そう、そういった SNS 上で自分の Github アカウント晒すのである。知り合いの大半は素人だろうから、見てくれさえすれば「なんかすごいね」という感想を抱いてくれるはずだ(直接言われるかどうかは別)。

たったそれだけでも承認欲求は満たされる。試してみるといい。ただし、SNSGithub を結びつけたくないという場合はこの方法は使えないし、一度でも使ってしまうと Github アカウントがばれてしまう。(ふざけて書いたコードやドキュメントを見られてひかれるかもしれない)

5. 学習・娯楽を満たす

Github は純粋なコンテンツとしても優秀であり、勉強や暇つぶしにも適している。

5-1. リポジトリを読む

主要な OSS はたいてい Githubソースコードを公開している。ソースを読めば勉強になるし、そうでなくとも Issue のやり取りを見て開発手法を学んだりすることもできる。

気になるリポジトリは Watch すれば更新通知が得られるし、気になるアカウントについても Follow することでその人の行動が通知されてくる。これらを活用すれば、OSS の情報収集を行えるのだ。

5-2. ツールを探す

Github には多数のツールが公開されている。Windows ソフトウェアVector窓の杜で探すように、Linux CLI ツールGithub で探すこともできる。

国産はほとんどないので検索には英語を用いる必要がある。また検索も Google ほど賢くないので、ちょっとコツは要るのだが、慣れれば色々とツールを探せるはずだ。

100 star 以上の明らかに人気で優秀なツールもあれば、5 star 以下のようなニッチなものもあったりするので、ちょっとした宝探し感覚で探せる。

5-3. OSS 最新動向を知る

Trending repositories on GitHub today というページにて、Github 上で最近盛り上がっているリポジトリを確認できる。日付(today, this week, this month)で絞ったり、言語で絞ったりできるので、色々覗いてみるといい。

ちなみに私も一時期 http://d.hatena.ne.jp/shouh/searchdiary?word=*[trending] Python this week trending をチェックしては記事にしていた 。飽きたのでやめたけど、色んなツールがあって面白いなとは思った。

5-4. 英語読解の練習

Github はヘルプが充実している 。当然ながら全部英語だが、簡潔な英文で書かれているし、GUI の使い方自体は(私は)既に知っているので、英文を読むトレーニングになる。

中には意外な仕様が書かれてあったり、知らなかった機能が見つかったりもして、こちらも同様宝探しの感覚がある。

6. おわりに

Social を謳う Github だが、ぼっちでもそれなりに楽しめることを示せたのではないかと思う。大半は自己満足でしかないが、たとえ自己のみであろうと満足できればそれでいいのだ。

ただし、反応がないからといって好き勝手書きすぎないように注意しよう。反応が無いと、あたかも自分がプライベートな空間にいる神のような存在だと錯覚してしまい、ふざけすぎた内容や過激な内容、あるいはうっかり秘密情報書いちゃったりなんてことも起こりえる。そこらへんのさじ加減に気をつけて、楽しい Github ぼっちライフを贈りましょう。

TIPS: 本記事では他連携サービスをあえて取り上げなかったが、実は 色んな連携サービスがある ので試してみるのも一興だろう。

(16/09/08 追記)

issueet など一部リポジトリを Private に変更したため、現在は閲覧できません。ぶっちゃけ恥ずかしいことを書きすぎたので隠しました。軽率すぎるのはよくないですね。

よぴそふとよぴそふと 2017/12/25 14:23 読んだら勇気が出てきました

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/shouh/20160525/1464180081
リンク元