けんぼーは留年生

Twitterに書ききれないこととか

電通大の休み方と辞め方の話

UEC Advent Calendar 2015 4日目
本来留年はしない方が良いし休学もしない方が良いし退学なんて絶対したくないものだが、したくないことでもせざるを得ない場合があるのが人生。せざるを得なくなってしまった電通大生に向けて今日は少し書いてみようと思う。

休学しよう

 基本的には休学も怪我や病気でないなら避けたいものだが、それでも卒業は諦めるけど次の進路は未定とか、留年等の理由で取るべき・取ろうと思う授業が無くなった場合等は休学した方が良いだろう。何しろ電通大では休学期間中は学費がかからないのだからこの仕組活用しない手はあるまい。*1ちなみに休学期間は在学期間に含まれないため、例え8年生であっても休学は可能だ。ただし、休学自体のリミットは別に設けてあり学部なら2年までだ。
 休学中も学生には違いない。図書館は使えるし学割もある。国立科学博物館が安かったりもするので単に身分を維持するだけでなく色々ある特典も利用したい。

休学手順

0.休学の予定を立てる

 原則休学は1学期単位で行う。月単位での中途半端な休学も出来ないことは無いが、途中から休学するメリットは特に無いのできちんと学期単位で休学しよう。*21期だけの休学と1年度分の休学がある。年度をまたいで一年分は出来ない。そして休学の申請は休学したい月の前月20日までとなっているが、教員との面談もあり割りと時間が必要になるので休学の一ヶ月前くらいから動いた方が良い。つまり、春なら2月中・秋なら8月中に動いておくのがベストだ。

1.教務課に行く

 とにかく窓口へ行こう。年度をまたいでの休学等で休学期間を更新する場合も窓口へちゃんと行こう。面談しなきゃいけない相手が変わっていることがある。休学の原因がアレな場合には足がすくむかもしれないが、職員は貴方を詰ったり問い詰めたりはしない。問い詰めはしないが、窓口で「休学事由」と言うのを聞かれる。この記事を読む人だったら「就職・学習意欲喪失・卒業困難・単位取得済」辺りが妥当だろう。ここでの記入はメモ書き程度のもので、後から変わると怒られたりする性質のものではないので適当に記入しておこう。これを記入すると色々と書類がもらえる。書類には色々と細かい説明が書いてあるし、職員の方も手続き手順について詳しく説明してくれる。書類は失くしたりしないよう大切に扱おう。

2.保護者と面談する

 あなたが社会人学生で無いなら兎にも角にも保護者との面談が必要だ。家庭環境にもよるがこの戦いは色んな意味で大変かもしれないが、必要なことである。何しろ休学通知は実家にも届くし学費が落とされなかったりするので逃げきれない。立ち向かおう。そして保護者から署名捺印を勝ち取ろう。

3.教員と面談する

 学科主任と助言教員(選択肢複数あるので1人選ぶ)と面談をする。「休学したいので面談させてください」と言う感じのメールを出してアポを取ろう。僕も初めて面談をした時は窓口へ行った時以上に足がすくんだものだが、大抵教員の方々は優しいことが多い。本人が色々考えた上で決断し、保護者が許可を出していれば問題無いと言った感じで許可をくれる。教員は学会等で一週間くらいいないこともあるので早め早めに動いておくことが肝要だ。

4.提出する

 一通りサインと押印が貰えれば後は出してリアクションを待つだけ。基本的には不受理と言うことはなく、後日通知が届く。もし提出が20日より遅れそうな場合は早めに教務課に連絡しよう。割りと何とかなったりする。

退学

 退学も手順としてはほとんど変わらず。ただし、退学と除籍は全く違う。卒業できないならちゃんと自主退学にしておいた方が良い。自主退学なら"編入"を行使出来るかもしれない。他大学だけじゃなく「電通大の夜間主でやり直す」なんてことも不可能ではない。しかもその場合には一部単位が流用出来るかもしれない。*3

最後に一言

 「休学中に自分を変える」みたいなのは大体無理。人間そんな短期間で劇的に変化したりしない。

おまけ

 留年系電通生のためにUEC留友会って集まりがあります。集まる必要はなくて「留年に関わる相談がしたいけど相手がいない」「行き詰まっている」等の事情がある時は大学の各種相談窓口を活用しましょう。そう言ったところにアクションかけるのもやりづらいという時には我々留年コンサルタントがいます。ご活用ください。

*1:他の大学では割引されるだけで0にはならない事があります。

*2:学期途中からの休学時に学費の返還等は無いので純粋に無駄だ。

*3:編入学の条件は大学の資料を読んでください。中退者の編入の条件はちゃんと募集要項の隅々まで読まないと分からないかも。

退学した話

世の人々は会社を辞める時に「退職エントリ」なるものを書くらしい。ならば私は「退学エントリ」を書きましょう。

退学しました

 長年電気通信大学で留年を重ね「永遠の2年生」などと言う薄ら寒い称号を背負って学生を続けていましたが、とうとう本日(9/30)を以って退学という形になりました。

経緯

 うちの大学は2年から3年に上がるタイミングで最初の進級審査があるのですが、そこで落ちて以来4年以上ずっと進級出来ずにいました。原因は学力不足でも興味が無かったわけでもなく、勤勉さの欠如でした。毎週学校に来て授業に出るという程度のことが出来なかったんですね。毎期始まりに「今度こそ授業出るで」→「また続かなかったよ……」という失敗を繰り返すごとに次第に「もう諦めるか」という思いが強まり去年の4月から退学を見越して休学していました。休学は最初に留年した頃にも半年だけしていて、残りの1.5年分を今期で使いきってしまったため退学の手続きをしました。

今後の予定

 先輩がやっているweb系ベンチャーでバイトしています。「大学さえ通えないような奴が会社に通えんのかよ」というもっともな指摘もあるかもしれませんが、以前大手の塾でバイトしていた時はちゃんと通っていましたし多分何とかなります。それに今いる所は社長が「通勤電車に乗りたくなかったから起業した」と言い出すような環境なので、この環境を大事にしていきたいと思ってます。

留年コンサルタントUEC留友会について

 学生ではなくなりますが、どちらも続けていきます。「卒業できなかった人」に聞きたいことがあれば、休学・退学について質問とかあればいつでも相談に乗ります。UEC留友会の方は僕自信が退学することを踏まえ世代交代をしたいなと考えています。(但し世代交代出来る程の人数は……)

退学豆知識

 「退学」は「除籍」とは色々違う、という話は誰しも聞いたことがあると思いますが、実際全く違います。退学しても「単位を修得した」という事実は消えません。故に別の大学へ行った時も一部の授業が免除になったり、勿論同じ大学へ入り直した時にも使える可能性があります。*1単に経歴がどうとかだけじゃないんですよね。なので出来るのであれば除籍は避け自主退学をした方が良いです。勿論卒業がベストなんですが。

*1:大学によって違います。これは電気通信大学の場合です。

パスワードを作るやつを作った話

kembo-net/password_generator_kembo · GitHub
パスワードジェネレーター
一年くらい前の記事で語った「ハッシュを使ってパスワードを作る」って奴javascriptで作ってGitHubに上げてみた。
GitHubってそのままWebに公開出来るんだねー。便利だねー。

使い方

パスワードジェネレーター
キーワードを入力して「生成」ボタンを押せば同じキーワードに対して必ず同じパスワードが返ってくる。キーワードのセキュリティ意識は多少低くても生成されるパスワードはまるでランダム文字列のように見えるので問題無い。入力ボックスに並んで確認ボックスもあるが、空欄のままにしておけば比較は行われない。最初パスワードを作る時は間違いを防ぐために確認を行うべきだが、普段パスワードを使う時には確認はすっ飛ばしても構わないだろう。

もし、君が本当にセキュリティを気にするのであれば先述のGitHubのページからjavascriptディレクトリの部分だけ引っ張ってきてソースコードを確認して自分のローカル内で動作させるのが確実だ。もっと言うとアルゴリズムだけ参考にしてちょこっとだけアレンジして作れば更に安全性は高まる。

なんでこんな物を作ったのか


どんなサービスでもパスワードを安全な方法で保持してくれていて絶対に流出しないなど、そんな保証はどこにもない。大手でも平気でパスワード複合できる形で保存してたり、ポロッとお漏らししちゃったりそういう可能性は常に存在している(むしろお漏らしのリスクは大きい所の方が狙われやすさ的な意味で危ないかもしれない)。そうなると自分の身は自分で――自分のパスワードは自分で守るしかない。そして、自分を守るためのパスワードは大体↓こんな感じの要件を満たしている必要がある。

  • 個人情報等から推測できない
  • 法則性を見出だせない程度に無意味な文字・記号の羅列
  • 十分に長い
  • 使い回しはしない
  • (定期的に変更する)

さて、こんなの大量に作って覚えていられるか? まず無理だろう。普段使ってるサービスのパスワードとか銀行のパスワードとか特別に重要なものや日常的に使うものなら覚えられるかもしれないが、そうじゃない瑣末なパスワードなんて覚えてられないだろう。ついつい使い回したり分かりやすいものにしちゃったり。そして、そういう瑣末な所から漏れたパスワードがどんな結末をもたらすことか……。aを@に置き換えるとか複数の単語をストライプ状に混ぜるとかパスワードを作り出す「法則」というものはいくつかある。だが、「法則性を見出だせない」と「大量に作成・覚えられる」を両立させるのは結構難しいものだ。

そこで今回私の作ったサービスを挟むことで多少なりとも簡単にパスワードのセキュリティ性を上げることが出来る。パスワードを作り出す「法則」の部分はコンピューターが弾きだしてくれる。万一流出しても攻撃者にとっては無意味な羅列と区別付きにくく、もし生成方法が判明しても逆算して突き止めるのは地味に困難だからね。

パスワード管理ソフト? あーいいよね、そう言うの。うん。ストレージで複数の端末間で共有させたりしてね。入力まで自動でやってくれる場合もあるしね。便利だよね。
僕はさ、何かを作り上げて世に出すというその行為自体に意味があると思うんだよね。それが例え100行未満の粗末な代物だったとしてもさ。ばいばい。

何よりも大きな話をしよう(無限,超限順序数の話)

 僕は何度か色々なところで巨大数の話をしてきたと思うが、今日はちょっと趣向を変えて有限ではなく無限の数の話をしようと思う。「無限」の捉え方は色々あるのだが、今回は以前の記事でちょっとだけ触れた「超限順序数」というものについて語りたいと思う。

順序数とは

 そもそも「数とは何ぞや」という話から始まる。数について色々な説明の仕方があるとは思うが、その中でペアノさんが導き出した自然数に対する根源的な公理が「ペアノの公理」だ。ペアノの公理の詳しい内容については他のサイトにお任せするとして、一番重要なのは以下の2点である。

  • 最初の数(0でも1でも)がある
  • どの数にも「次の数」がある

 「何であるか」という問いに対し最低限の要件のみを与え「そのように振る舞うものがそれである」と言ってしまうのが「公理」だ。曖昧な言葉の意味へ言及することを避けるためだ。
 要は「最初の数」と「次の数」さえ定義されればそれは数(自然数)と呼ぶことが出来るということだ。例えば関数型プログラミングをかじったり舐めたりしたことのある人ならチャーチ数という言葉に聞き覚えがあるはずだ。それもペアノの公理を満たす数の定義の一種だ。
 今回は集合を使ってこの「最初の数」と「次の数」を定義する。これが「順序数」である。

 式だけだと分かりにくかろう。実際にこれを元に1,2,3,……を表そうとするとこうなる。

  • 1=0\cup\{0\}=\{\}\cup\{0\}=\{0\}=\{\emptyset\}
  • 2=1\cup\{1\}=\{0\}\cup\{1\}=\{0, 1\}=\{\emptyset,\{\emptyset\}\}
  • 3=2\cup\{2\}=\{0,1\}\cup\{2\}=\{0, 1, 2\}=\{\emptyset,\{\emptyset\},\{\emptyset,\{\emptyset\}\}\}

 要するに0は空っぽの集合で、それ以降は自分の直前までの数の集合ということになる。こう定義すると数の大小関係の定義がやりやすく厳密になる。ある数はその数の直前までの数を全て含んでいるので、含んでいる方が大きくて含まれている方が小さいのだ。

  • a \gt b \Leftrightarrow a \ni b

 ではここで「自然数全体の集合」というものを考えてみよう。どの自然数も「自然数全体の集合」に含まれているので、自然数全体の集合」を順序数と見なすとこれはどの自然数よりも大きいということになる。

  • \omega = \{0,1,2,3,\dots\}
  • 自然数nについて n \in \omega \to n \lt \omega

 このωのように有限ではない順序数のことを「超限順序数」と呼ぶ。ところで、このωは自然数の集合であるから、自然数以外の余計な物は含んでいない。故に「ちょうどピッタリ自然数より大きい数」だと言える。「ωより小さくて自然数より大きい」数は存在しないということだ。

超限順序数ωとは

 簡単にまとめておこう。

  • 「超限順序数」はどんな自然数よりも大きい数
  • ωはどの自然数よりも大きい超限順序数の一種。
  • 自然数よりも大きくてωより小さい数は無い。

超限順序数を足し算してみよう

 ω+1を計算してみよう。さっきの定義を思い出せばすぐ出来る。

  • \omega + 1 = \omega \cup \{\omega\} = \{0,1,2,3,\dots,\omega\}

 このようにωには前の数ω-1は無いが次の数ω+1はちゃんとある。では今度は2を足してみよう。集合での表記は面倒臭いので以後割愛する。

  • \omega + 2 = (\omega + 1) + 1 = \omega + 2

 最初の定義をもう一度思い出してほしい。定義にあるのはsuc即ち+1の演算だけだった。だから+2とは+1を2回繰り返すことだし、+nとは+1をn回繰り返すことになる。「何を当たり前のことを」と思うかもしれないが、そういう細かいことを気にしていかないと次の演算を理解できない。

  • 1 + \omega = \omega

 さてゆっくりこの一見頭のおかしい式について考えてみよう。+nが+1をn回繰り返すことならば、+ωは+1をω回繰り返すことになるだろう。
1+\omega = 1 \overrightarrow{+1+1+1\dots}^{永遠に続く}
 いきなりω回+1を繰り返すのはちょっと無理があるので、ゆっくりωに近づいていこう。最初はこうなる。
1+1=2
2+1=3
 これを自然数n回繰り返してるとこうなる。
n+1
 nが自然数ならば当然n+1も自然数だ。そしてこのnが自然数の限界を突破するまでこの作業は続く。逆に言うと自然数の壁を突破する直前までは常に自然数だ。つまりn回目の+1でωになっちゃったりはしないので、1+ωがωより大きくなるのは不可能なのだ。数式で表現するとこう。

  • 1+n \lt \omega \Rightarrow 1+\omega \leq \omega

 1+\omegaが有限なはずもないので必然的に1+\omega = \omegaとなるわけだ。
 要するにωとは「自然数を全て数え上げる」という不可能なはずの動作をやってのけるバグ技みたいなものだ。自然数は無限にあるのでちょっとやそっと途中から数え始めたくらいでωを超えられるわけではない。
 じゃあ+ωしたものは全部ωになってしまうのだろうか? そうではない。ωにならωを足すことで値を増やせる。

  • \omega +1\to\omega +2\to\dots\to\omega + \omega

 ω+nだけで普通の自然数と同じだけ続いているので、その限界を超えることでより大きな 超限順序数ω+ωを練成できる。

超限順序数を掛け算してみよう(序章)

さすがに長くなってきたので、この辺で終わりにしよう。最後に少しだけ掛け算を定義してみる。

  • \omega + \omega = \omega \cdot 2

 実に単純な話だ。ωを2個足してるのだからωかける2、それだけだ。次回は掛け算でも前後を交換出来ないこと、そしてもっと不思議な掛け算やさらに複雑なべき乗について扱っていこうと思う。
 そんな感じで。

*1:suc(x)とは「xの次の数」即ち「x+1」という意味になる。

買いましたPebble Watch

f:id:kemboorg:20150528160805j:plain
やったぜ✌('ω')✌

何これ?

 所謂スマートウォッチです。ディスプレイが通常の液晶ではなく省電力なメモリ液晶と呼ばれる代物で、他の同様の商品に比べると「明るい場所でも見やすい」「画面は常時表示しっぱなし」「電池が良く保つ」というメリットがあります。

日本語化

 デフォルトだと英語です。メニューが英語なのは良いんですが、通知の日本語を表示出来ないのは超困ります。ので、有志の方が非公式で日本語言語パックを作ってくださっているのでこれを利用しました。
Pebble 日本語言語パック / Pebble Japanese language pack
 作ったのが日本語圏の方ではないというのがまた驚いた。

通知

 スマホに来る通知は大体pebbleにも飛ばせる模様。今はGMailTwitterのリプライをpebbleに飛ばしてるのですが、全てのメール通知が飛んで来てしまうのはちょっとどうにかしたい。スマホの通知はメインタブのメールしか通知しないのになぁ。
 pebble音は出ないんですが、時計がブルっと来ると結構気づきます。僕は自転車移動が多いんですが、信号待ちのタイミングとかでチラッとメール確認とか出来るの超便利ですね。スマホを取り出すまでもないちょっとした情報の確認にはお役立ちです。

時計

 他の一般的な"スマートウォッチ"ってボタンを押して液晶つけないといけないんですよね。その反面デフォルトで画面つきっぱなしのpebbleは腕時計として要をなしています。ただ、解像度は低いのでアナログな時計を表示したい時は針が太めのものを選ばないと見づらいですね。僕はデジタル表示にしてます。時計の種類は本当に追えないほど無数にありますし、自分でも作れます。僕もシドニアの騎士風とか作ってみますかね。

アプリ

 勿論時計以外にも色々アプリがあります。メモを表示してくれたりだとか、サイクルコンピューターの代わりになる奴とか、万歩計とか、睡眠管理とかその他諸々……。とは言え所詮は時計。画面は狭くボタンの数も少ないのであくまでスマホの補助の範疇を超えない程度にしておかないと却って使いづらいです。まだ買ったばかりなんでしばらく使ってみて良さそうなのあればレビューします。後javascriptで作れるらしいので僕も何かしら作ってみたいですね。

ゲーム

 当然ゲームも有ります。ただ、あの小さい画面と少ないボタンですから碌なゲームは出来ません。テトリスとか入れてみましたが、大抵のゲームは苦痛でしか無いです。
 そんな中でちょっと面白そうかな?と思ったのがこのゲーム。forums.getpebble.com
 放置してると一定時間でアイテムを拾ったりモンスターに遭遇したりする。その都度選択肢を選んでRPGっぽくダンジョンを攻略していくゲームらしい。まだ全然進めてないから「面白い」とは言えないけど、こういうデバイスだからやはり放置系のゲームが合ってると思うんだ。皆の評価は高いっぽい。

電池

 めっちゃ保つらしいです。一週間くらいイケるとか。そうは言ってもスマホの方が保たなきゃ意味無いんだよなぁ。まぁスマホが落ちても多分時計としての用はなすはずだし。

その他

 防水とかも完璧らしいです。プールに飛び込んでも良いらしいから風呂とか大抵の場面は凌げそう。その反面端子が磁石でくっつくタイプだったりします。まぁ充電そんなにいらなさそうだから大丈夫でしょ。
 デザインは黒だと黒すぎたし白は好みじゃなかったから赤を選んだけどやっぱりあればオレンジが良かったとは今でも思ってる。でもまぁ赤も悪く無いです。
 後軽いですね。この前に使ってた腕時計が金属製でズッシリ来るものだったので、軽さが際立ちます。

展望

 今はスマートフォンと組み合わせてるんですが、これタブレットと合わせた方が強いんじゃないですかね? こいつのお陰でスマホを取り出す頻度は下がりそうですから、ちょっと取り出しづらいタブレットでも良さそうな気がするんです。これ単体だと弱いですからやはり親機の電池の保ちは重要なわけで、そうすると大きいタブレットの方がバッテリー面でも有利なんじゃないかと考えてます。丁度7月に更新月なんで何か考えます。
 後さっきも書いたけどアプリ何か作りたいですね。パソコンやスマホみたいなリッチな環境で動かすプログラムも良いけど、こういう小さな世界でごにょごにょするのちょっとテンション上がる。


総論としては「まだ1日も使ってないから何とも言えないけど今のところ良い感じ」です。

だから僕は「嫁」と呼ばない

f:id:kemboorg:20080608004854j:plain
 そう、鬼太郎(5期)のネコ娘です。初めて見たその日からずっと僕にとっての1番なわけですが、今日は彼女の話ではないです。タイトルの通り僕はネコ娘を「嫁」とは呼びません。その事について語ります。正直書くのをためらうレベルで気持ち悪くて恥ずかしいのだけれども、それ以上にこれは一度はっきりさせておかなければならないと考えここに記します。

俺の嫁」はオナニーだ

 架空のキャラクターに対して「俺の嫁」という表現――最近だと単に「嫁」と呼ぶことの方が多いですが――をよく見かけます。嫁と呼ぶからには「愛し"合う"」必要があるわけですが*1、作品や画面の中からこちらを愛してくれるわけではありませんから(ギャルゲとかラブプラスの類は除く)、それはあくまで妄想の世界で繰り広げられるおままごとに過ぎません。自分の手に人形を被せてそれと愛を語り合ってるような物――要はオナニーです。別にオナニーは悪いことではありません。むしろオナニーの対象に非実在キャラクターを持ってくるのはむしろ推奨すべきことでしょう。実在の人物でこれを始めた場合下手すると警察沙汰になりますからね。

ネコ娘は実在しない

 これは事実です。僕がいくら一生を費やして妖怪横丁探したってそんな物出て来やしないんです。悲しいことに僕がネコ娘と出会える可能性は限りなく0なんです。

でも、ネコ娘は"いる"

 彼女がこの世界にいないということと彼女が"いる"ということは矛盾しません。こちらの世界から直接干渉することが出来ないだけでネコ娘の"いる"世界は"ある"んです。「そんなのあるとも無いとも言えないんだから悪魔の証明だろ」と言われてしまうとそうなんですが、"いる""ある"と言うからにはそれなりの根拠があるんです。

僕は本当に"いる"のか

 主観の話をします。僕は自分が真にこの世界に"いる"とは思っていません。僕はこの世界の表面にへばりついて五感と言う名の節穴からこの世界を覗きこんでいるだけです。もしかしたら節穴の向こうに広がっているのは本物の世界じゃなくて誰かが作った偽物かもしれないけど、僕はあくまで節穴から覗いてるに過ぎないのでその区別は付けられません。でも、少なくとも僕にとってはこの節穴が全てなわけですから僕は多分ここに"いる"んだと思って生活しています。

あなたは本当に"いる"のか

 さっきも言ったように節穴を覗いているだけなので、もしかしたら僕が目の前で話をしている相手も確実に存在しているとは言い切れません。でも、区別出来ないのだから疑ってもキリがないので大体"いる"と思って暮らします。じゃあどんな時に"いる"と感じるのでしょうか。

心の中に写った虚像のその向こうに見えない"何か"

 僕は他者を直接捉えたり理解したりすることは出来ません。でも、その人と繰り返し接していれば「この人はこういう感じ」という虚像が心の中に出来上がってきます。そして、その虚像の向こうに見えそうで見えない"何か"又は本体が"いる"という感覚の正体なのだと考えています。どこまで正確な虚像を描いてもそれはあくまで虚像であってその人本体を捉えられるわけではありません。だから結局「虚像の向こうに何となくあるような気がする"何か"」が"いる"の根拠になるしかないのです。

だから、ネコ娘も"いる"

 ネコ娘は僕の五感という節穴の更にその向こうにあるテレビという節穴の中に観測された存在です。僕は繰り返しネコ娘を観測しましたし、僕の心にはネコ娘の虚像があるわけです。その虚像の中に見えそうで見えない"何か"を見出すことで彼女は確かに"いる"のだと僕は確信するわけです。
 鬼太郎の世界も現実の世界も同じ節穴の向こうです。この世界に実在している人間もどこか別の世界に実在している者も、同じく節穴の向こうから自分の心に虚像を作る存在です。虚像の向こうに実体があるような気がするのなら、それは対象がどこの世界にいようが関わらず"いる"のです。

"いる"人を勝手に嫁には出来ない

 というわけでネコ娘はこの世界には実在していなくても、僕にとっては"いる"のだということがお分かりいただけたかと思います。彼女は僕の中の妄想の産物ではなく確かにどこかにいる他人であって、他人の意思を勝手に捻じ曲げるような真似は許されません。逆に言えばネコ娘を「嫁」呼ばわりすることは即ち彼女の存在を自分の中に閉じ込めてしまうことであり、彼女を"いない"ものにしてしまうことになるんですよ。

だから僕は「嫁」と呼ばない

おしまい。
f:id:kemboorg:20081221092419j:plain

*1:そこまで深い意味は無く単にスラングとして利用する場合も多いです

きっと!きっとやるから!~Kitコマンドの仕様~

 Kitコマンドについては昨日書いたのですが、深夜テンションに任せて適当に書いたものだったから内容に不満があったのと、とりあえず意図した動きをするようになった気がするのでもう一度記事として書きなおして投稿します。

https://github.com/kembo-net/Kit
 KitコマンドはGitコマンドを拡張し、プロジェクトをより進めやすくするための物です。従来のGitのように作業後にメッセージを書くのではなく、事前にこれを宣言することで現状把握をしやすくします。

インストール方法

 インストーラーはまだ出来ていません。自分でコンパイルし、~/binの下にkitというファイル名にして突っ込んで下さい。

コマンド詳細

initコマンド

$ kit init
$ kit init project_name

 initコマンドはkitを利用するための準備をするコマンドです。もし、あなたがGitリポジトリの中にいるなら.kitstackというファイルを生成します。もし、Gitリポジトリにいなければこのコマンドはgit initと同じ動作をしてからその作ったリポジトリの中に.kitstackを用意します。

doコマンド

$ kit do "commit message"
$ kit do after "commit message"
$ kit do after [0-9]* "commit message"
$ kit do [0-9]* "commit message"

 このコマンドがKitコマンドの中核となるものです。doの後ろに付けたコミットメッセージを.kitstackに積み上げます。stackと書かれているように通常は予定は後に宣言されたものを先に実行するものとして上に予定を積んでいきますが、afterオプションを付けた場合は逆に下に挿入されます。また番号を指定した場合は一番上を0として数えた番目の所に挿入します。予定が追加されたことはgitに記録されます。

doneコマンド

$ kit done [0-9]* (file_name1 file_name2 ...)

 doneコマンドはdoの次に大切なコマンドです。doによって.kitstackに積まれた予定を実行します。通常は一番上の予定を全てのファイルを対象にコミットします。番号を指定した場合はその番号の予定を、ファイル名を指定した場合は(複数可)そのファイルだけを対象に実行します。

removeコマンド

$ kit remove [0-9]*

 .kitstackに積んだ予定を削除するコマンドです。数のオプションを付けなければ一番上の予定を、付けた場合はその番号の予定を削除します。削除したことはgitに記録されます。

editコマンド

$ kit edit [0-9]* "commit message"

 .kitstackに積んだ予定を編集するコマンドです。数のオプションを付けなければ一番上の予定を、付けた場合はその番号の予定を編集します。編集したことはgitに記録されます。

now,listコマンド

$ kit now
$ kit list

 これらは現状を確認するためのコマンドです。nowは.kitstackの一番上の予定を表示します。listは全ての予定をインデックス付きで表示します。他のコマンドで番号を指定する場合listコマンドでどの予定がどの番号だったか確認しておくと良いでしょう。

-nオプション

 予定を追加したり削除したりした場合は標準ではそのことが記録されますが、記録したくない場合は-nをコマンドの直後に付けることで回避出来ます。

その他のコマンド

 その他ここに書かれていないコマンドが実行された場合kitコマンドはgitコマンドのエイリアスとして動作します。