2011/02/24

Shibuya.trac #10 勉強会

でぶさみのあとに、強行突入です!

スタッフの中にも、連続してやっていただいた方も多く、皆様ほんとうにお疲れ様でした。
また、参加してくれた方や、会場スタッフの方、皆様本当にありがとうございます。

今回は、司会をやることになったので、話をしっかり聞けるか不安だったんですが
司会業を地味に忘れて、しっかり聞いてしまいました。
(マイク持つとか、気がつかなくてごめんなさい そしてありがとうございます @wyukawaさん)

@tosikawaさんの、神速ファンクラブ広報

初めて公式に、広報していただきました。

例の隣の人ですね。でも、隣の人って大事ですよねっていうのを認識させていただきました。
(あそこまで、溺愛は僕にはちょっと難しいですが、女の子なら・・・)

それと、ちょっと変な割り込み方してしまって、グダグダをやらかしました・・・
多分ステッカーも結構あまってるみたいなんで、頼むともらえる?

こんどから、Shibuya,tracの勉強会告知に、

「Shibuya.tracで神速さんと握手!」

みたいなの、美味しいですかね。

Oかもとさんの、とある券売機の改善記録(Kanon発表会)

いきなりタイトルとぜんぜん違う話になったので、誘ってもらえないからキレたのか!?と思ったり。
実際は、Ticketシステムの改善としてKanonへっていうことでよいのだろうか。いいんだろうな

素直に、Kanonいいなぁと思いました。いまやってるプロジェクトも、Linux上での開発なので
TracLightningだとCIサーバーを別に用意してるんですよね。

まぁ、素のtrac使えばいいじゃんって言われちゃうはずですが、TracLightningらくちんなんだもんw

そんなこんなで、開発者募集とかしているようなので、参加できたらいいなぁと思っていたり。
(僕のスキルが足りないとかそういう話は、またあとで検証しよう)

こくぼさんの、RedmineとBacklogs

かんばんが、すごい衝撃的だった。昔こういうのあったら、意外と使うようになるかな?って
話してたのが現実に存在してた。

というわけで、Redmineに興味をもったとか。
使わなきゃいけない場面もあるので、これを機にはじめるか・・・

子供かわいい。

LT: @wyukawaさんの、Tracユーザーから見たMantis

Mantisの画面を始めてみたけど、色合いが見やすいなと思った。

LT: ふじはらさんの、EnterpriseRedmine

ここまで広範囲に広がったBTSの話を聞いたのが初めてだった。
広がり続けたときの問題点とか、対策とか、勉強するところは多かった。

LT: @ikikkoさんの、モテBTS~Backlog~

モテるのか・・・。それはそうと

僕も地味にBacklog使ってるんですが、あまりなじみの無い人でも使えるのは、
じぶんちの嫁で確認済み。すごいなぁと思ってます。

LT: @Sean_SFさんの、チケット管理システム大決戦 本戦

本戦やるのかっ! 実際、戦う必要があるかどうかは不明として(w)、どのツールが、どういう用途に向いてるってのは
まとまって話す機会が少ないと思うので、気になる気になる

そっち方面に詳しい人は、このWikiに書き込んでほしいそうです!コメントでもOK!
あと、すでにKanonも入ってるなぁ、すごい Backlogも参戦

LT: @kawagutiさんの、Scrum in 10 minutes

5分にしてごめんなさい、でも、わかりやすかった。スライドここで見れる。なんども見る。

以上です。

自分のこと

とても楽しく過ごせました。時間調整とか、おかもとさんのデモ切っちゃうとかもあったので
申し訳ない部分もありましたが、いろんな人に、「よくやった」って言ってもらえて、涙でそうです。

思えば、@kaorun55に、元のスライドをもらい、@kanu_さんにコミュニティ紹介スライドを提供してもらい
@tyobichiさんに、タイムテーブルとかの情報をもらって資料をしあげ、
前説で、@tosikawaさんがまとめてくれたのに、変な付け加えをし・・・
@LightningXさんに、「すまないが、先にやってくれないか」と言い、しかもデモを削ってもらい・・・
@ikikkoさんの時間を10秒勘違いし。

いろいろあったけど、楽しかった!

そういえば、@kaorun55のTracの事を書いた記事を紹介するの忘れてました。

とりあえずここで紹介しておこう・・・

image

http://gihyo.jp/magazine/SD/archive/2011/201102

これ!Tracを使ってプロジェクトを改善するってことについて書いてある。
しかも、実際にやった事を記事にしてるから、空論じゃないんだぜ!

と、やっつけ気味に、れぽ終了・・・

DevelopersSummit2011いってきた

祝・初参加!

セッションは、4つほど聞かせていただきました。
あと、OpenJamに参加しました

  • 17-B-3 「チケット駆動開発~タスクマネジメントからAgile開発へ~」
  • 17-B-4 「チケット管理システム大決戦」
  • 17-B-5 「今そこにあるScrum」
  • 18-B-1 「プログラマが知るべき、たった一つの大事なことがら」
  • すくすくスクラムのOpenJam

今回も感想のみですが

17-B-3 「チケット駆動開発~タスクマネジメントからAgile開発へ~」

うちの会社にTracを入れよう!ってなったときに、昔別のとある会社で
BTSを使ってたときのメイン用途が、バグ管理だったこともあって
バグ管理ってイメージが強かった気がします。

いまはタスクとかも入るようになって、じわじわと「チケット」っていう言葉が
浸透してきてるのかなぁ・・・(まともに使えてないからダメ?w)

バグ管理とかから、チケット中心(no Ticker no commit)みたいなことが
習慣として根付いたら、「やらなきゃいけない」から、「自然とやっている」まで
移ることが出来るかなと思ったり。

実際、いつぞやの新入社員は、最初っからTracがあって、チケット登録してから
仕事するんだよって、いまはなきあの方が指導したら、自分よりしっかりと
チケット管理してたきもします。

自分を 強制 というか 矯正 する必要がありそうなきがしてたのを思い出しました。

17-B-4 「チケット管理システム大決戦」

そのあとのチケット大決戦は、後で本戦の話題も出るほどでw

ただ、聞いてて思ったのは、どれもツールであり、ツールを使ったから
改善するわけではなく、適したツールを使うことでより良い改善が出来るということ。

僕自身、実はTracっていうツールから、勉強会とかの世界にはいって、
そこをきっかけに、あーこういう手法とか、ああいう開発方法があるんだなって
やってきました。

なので、最初はツールに使われててもいいと思うのです。
ただ、忘れちゃいけなくて、ツールは助けてくれるけど、それは自分が
助けを求めたときだけなので、きっかけは自分から。一歩進むのも自分ですよね。

17-B-5 「今そこにあるScrum」

Scrumの話ですが、応援団がいっぱいいらっしゃって、素敵だったと思います。

確かに、あしたScrumをやれといわれるような現状で、何も知らないのはどうかと思う。
そもそも、できるにも種類があって、普通にできるものと、苦しんで死ぬかもしれないが
やろうと思えば出来る という、2種類。おそらく、Scrumをいきなりやれといわれたら後者。

知ってる人間だけあつまってやればいいなら、まだどうにかなるにしても
まったく知らない人を上手く導くすきるなんて、無いです。

だからこそ、開発手法の概要だけでもある程度理解しておくことで、
仲間の誰かが、「やれ」といわれたときに、よしやろうって周りが言ってあげられたら
いいのになぁとか思います。

あとは、Scrumをやることが目的になっちゃうのがマズイってのを再認識。

Agileをやりたいからやる んじゃなくて、Agileは必要だから導入する。
Agileでないと実現できないから、自然とAgileになっていく

みたいな。どこかで聞いたぞ。AgileDayか。

18-B-1 「プログラマが知るべき、たった一つの大事なことがら」

なんか、心に響いた。

僕自身、まだインプットすら中途半端で、たまにブログを書くぐらいになってるけど、
自分で伝えられることがあるなら、やりたいなぁと。

素直に、かっこいいな と思ったし、あこがれもした。

あと、年下から学べるかどうかっていうのは、やっぱりそうなのかと思った。
というか、ぼくの周りには、恐ろしい年下の方ばっかりで、こないだ、この人何歳なんだろって聞いたら
自分より年下のあまり、なんかいたたまれない気分になったりと。

「25歳以降は、自分が何をしてきたかなので、別に年齢なんか関係ないさ!」とか、話すことも多かったけど、改めて実感

後日談で、かおるん(@kaorun55)に、「ボクカラマナンデルジャナイデスカ」って、冗談交じりに言われたけど
彼が居なければ、こういう勉強会とかに参加することも無かっただろうし、tracすら触ってなかったかもしれない。
わださんに、師と呼べる人がいたように、自分も誰かに教わりながら、誰かに伝えながらやっていこうと。

ドラムサークル体験 すくすくスクラム OpenJam

なんか肩が重いし、休憩しないとやばいなぁ思いながらブースすわってたら、やってくる@Qooh

「OpenJamにおいでよ!」

と誘っていただいて、何々?いくいくw とホイホイつられたわけですが

クリエイティブになるための、子供に戻るセッション?w

あいかわらず、林さんの空気に飲み込まれてる(こないだのエクセレントサークルとか)気がするけど、よしとする。

実際にやってみると、最初は正直、こっぱずかしいなぁと思ってやってたけど、だんだんどうするんだこれみたいな
お題が振ってきて、最終的にはなんかノリノリでやってたw

やっぱりものをつくるのは楽しくなきゃいけないですね。

実は後日談があって、ついったでも少し喋ってたんですが、こどものクリエイティブがどんだけか試してみたんです。

何をしたかというと、2歳になる娘と、コタツのテーブルに、模造紙敷き詰めて、絵を描いてみました。

結果的に、僕が小さい絵を一生懸命書いてる間に、模造紙がいろんな色の渦で8割ほど埋め尽くされて
それでもまだ楽しそうにペンを握って、叫びまわる娘がそこに居ましたw

やっぱり子供のほうが、思うがまま、いろんなことが出来るんだなぁって実感しました。

ぼくは、線一本引くだけで、ものすごい迷ってましたし。とにかくやってみるってのは、子供から学ぶ部分も多いのかなw

Shibuya.trac お店番

今回の僕のメインイベント。

スーツ率が高いってきいてたので、ちょっとgkbrしながら、行ったんですが、Shibuya.tracのブースはいつもの空気でしたw
(kanuさんがいたから?w)

ビラ配ったり、ビラの説明したり、ボードにシールはって~ってお願いしたりと、いろいろやって、
いろんな人が、同じような悩み抱えてるんだなぁって認識できた。

あと、ブースを見てくれた人で、組み込み関連技術者に会えたのが、すごい大きかった。
組み込みに、新しい文化を入れるのは大変だよねーって会社で話していた、直後の出来事で
そう思ってるのが、自分だけじゃない って思えるようになって、やる気++

というわけで、僕の初でぶさみは、盛況のうちに幕を閉じたのでした。

Shibuya.trac #10 は、別記事でw

2011/02/19

Windows の python と Cygwin の共存ではまるの巻

ちくしょう、昨日の夜中と今日の午前中を返せ!

というわけで、Windowsでpythonやってるんですが、

Windows Python2.6 と cygwin の入ってる環境で、
見事にはまりましたので、現象と解決策をまとめます。

まず、何が起きたかというと、Windows版でeasy_installを利用する場合
インストーラーにて、インストールすることになります。

で、使えるだろ思って、今回はNoseGAEをインストールしようと

$ pyhon setup.py install

と行くわけです。で、出てきたメッセージは、

  File "setup.py", line 1, in <module>
    from setuptools import setup
ImportError: No module named setuptools

なんのことかと思いました。だって僕インストールしたもんさ!

そして悩むこと数時間。pythonを起動するといつも出てくるメッセージに
違和感を覚える。

Python 2.6.5 (r265:79063, Jun 12 2010, 17:07:01)
[GCC 4.3.4 20090804 (release) 1] on cygwin
Type "help", "copyright", "credits" or "license" for more information.

cygwin?

cygwin?

cygwin?

・・・

あ、共存に失敗しとる?

というわけでGoogleさんに聞いてみると、一発でこちらのページ
たどり着きまして、「そりゃそうだよね」と納得した次第。

環境変数のpathでcygwinのほうが、優先度が高くなってまして
Windows版のpythonが呼ばれてなかったようです。

また、あわせてpythonのパスも設定しておく必要があるそうなので、それも。

PATHの先頭(cygwinのパスより先に、pythonのパス
(デフォならc:\python26あたり)を設定してあげると、Windows版を呼びます。

Python 2.6.5 (r265:79096, Mar 19 2010, 21:48:26) [MSC v.1500 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.

こんな風に出たらOK!

あと、PYTHONPATH(説明)を設定しておくと、setuptoolsも探しにいってくれるはず。

PYTHONPATH の環境変数を新規に作成して、site-packagesを追加します。(デフォなら c:\python26\Lib\site-packages\ あたり)

これで、easy_installを使うセットアップ呼び出したら動いた!良かった・・・

たぶん、この時点で気がつかなかったら、GAE関連やり始めて、さらにカオスに陥ることうけあい。不幸中の幸いかなぁ・・・

2011/02/17

github で協力開発

せっかくgithubなので、協力者について少し書いておこうと思います。

githubはタダの場合は、問答無用で公開リポジトリです。

ただ、公開されてるだけなので、読み込みは出来ても、
書き込みできないようになっています。

協力者の設定を行うことで、書き込み権限を与え、開発ができると。

すばらしい。

方法は簡単で、まず条件ですが、

  • 協力者がgithubのアカウントを持っていること

です。

では方法。

まず、一緒に開発するためのリポジトリのページを開きます。

右上あたりに「管理」ってボタンがあるので、そこを押します。

image

そうすると、リポジトリの設定画面が表示されます。

image

協力者の部分を開いて、追加したい相手のIDを、入力エリアに入れます。
ちなみに入力すると、かっこいいウィンドウが開いて、候補を出してくれます。

入れ終わったら追加を押すことで、協力者を設定できます。

相手が、リポジトリのページを開けば、読み書きできる方の
リポジトリのURLが表示されているので

$ git clone <gitリポジトリのURL>

で、ローカルリポジトリを作りましょう。

あとは前の記事のとおりです。

少し追記しましたが、前の記事では、自分でremoteとか設定してますが
cloneの場合、勝手にはいっているので

リモートリポジトリに変更を反映する場合は

$ git push

リモートの変更点を、ローカルに反映するには

$ git pull

でいけます。

githubではじめるgit

本日会社にて、「gitむりっす、コマンドラインがっ」って言われたんで
とりあえず使うだけでも使えるように、少しまとめてみようかなって。

何を題材にしようかとおもったら、とりあえず、git-svnからとかだと
いろいろ紛らわしいので、まずはただの git からいこう!と。

世の中には便利なサービスがあって、githubという、自分のリポジトリを
タダでもてるという素敵なサービスがあるんです。
まずは、それを使って、最初のコミットまで。
(実際は、チュートリアルがあるのでそのとおりなんだけど)

対象は、Windowsをつかってて、git使いたいけど、試すのが・・・とか
コマンド難しくて、なに覚えていいかわかんねぇんだけど・・・な人です。

ゴールは、とりあえず一連の操作できるようになったらいいね!ってことで

githubに登録する

https://github.com/ にいくと、ロケーるが日本であれば
上のほうに、「日本語で使う?」って出るので、「はい」と素直に。

日本語になるんで、ど真ん中のでかい新規登録ボタンを押します。

image

そしたら、とりあえずお金使いたくないので、
公開リポジトリを作ることにします。

image

一番上に、オープンソース用無料プランがあるんで、ここを選びます。

image

必要な情報を入れて、ぽちっとアカウントの作成を押します。

これで登録は完了。画面はダッシュボードへ移動します。

リポジトリを作ってみる

登録できたんで、次はリポジトリを作ってみます。

まず、右端に

image

おまえのリポジトリねーから って言われてるので、
自分のリポジトリ作ります。

新しいリポジトリ のボタンを押して、リポジトリ作成画面へ
(ちなみに、下の「リポジトリを作りましょう」をクリックしても同じ画面です)

image

リポジトリの情報を入れて、作ってください。

最初のやつなんで、プロジェクト名は自分の名前。
説明は、「俺の伝説の始まりだぜ」とかで。
ホームページはあれば入れとくと、リポジトリのページに表示されたりとか

あとで修正できるので、optional部分(説明、ホームページ)は適当で大丈夫

アクセスできるのは、「誰でも」で。アップグレードするとお金かかるんで。

これでリポジトリが完成。今度はクライアント側の設定をしましょう。

gitを使うための、クライアント側設定

今回は、Windowsホストを対象にしてるので
gitはcygwinでやりましょう。
インストール方法はここを参考に。

gitとopen-sshがインストールできたら、cygwinのコンソールを開いて
とりあえず git用のフォルダを作ってそこに入っておきます。

$ mkdir git
$ cd git

まずは、自分のユーザー名とメールアドレスを共通設定に
書き込んでおきます。

$ git config --global user.name "ユーザー名"
$ git config --global user.email "メアド"

ちなみに、--global で、共通設定 付けない場合は、
リポジトリ固有の設定になります。

次に、一番引っかかる、鍵の作成をします。

open-ssh をつかってやるんですが、まず仕組みを。

鍵を作ると、公開鍵と秘密鍵が出来るんですが、公開鍵のほうを、
githubに登録しておくことで、クライアントを認証します。

これをやらないと、コミットすることが出来ませんので注意です。

で、やり方ですが、ここが参考になります。

まず、鍵を作ります。

$ ssh-keygen -t rsa -C "メールアドレス"

インストール場所聞いてくるので、普通はそのままでOKです。
前に作ったことある場合は、上書き確認が出ます。
大事な鍵の場合もあるので、上書き確認でたら、バックアップとってから
もう一度やり直してください。

パスフレーズを聞かれますので、必要であれば入力してください。
必要なければ、何もいれずにEnter。再入力きかれるので、Enter
(パスフレーズ設定した場合はそれを入れてEnter)

そうすると、鍵が出来上がります。

公開鍵側を、githubに設定するので、鍵のフォルダに移動します。

場所は、先ほど鍵作成時に指定した場所(通常は、ホーム/.ssh)です。

ここに、「id_rsa.pub」というファイルがあるので、これをcatします。

$ cat id_rsa.pub

そうすると、公開鍵の情報が出てくるので、とりあえずクリップボードに
コピーしておきます。

次に、githubのページに移動しましょう。

右上のメニューから

image

アカウントの設定を選んで、その画面の

image

SSH公開鍵 を選択、隣の「別の公開鍵の追加」をクリックします。

image

タイトルと、キーを聞かれるので、タイトルには、

メールアドレスとかで分かりやすく。

キーの部分に、先ほどcatで表示した公開鍵を丸々貼り付けます。

終わったら、キーの追加を押すと、正常に完了すれば

image

こんな感じで、登録されます。

これで鍵の登録は完了、無事、リポジトリに
アクセスできるようになったわけです。

実際にリポジトリにアクセスしてみようか

リポジトリにアクセスできるようになったので、実際にファイルを入れましょう

まず、githubの画面でダッシュボードに戻って、右下の自分のリポジトリを
クリックしましょう。

手順が画面に表示されていると思うので、そのとおりに行きます。

  1. mkdir リポジトリ名
    まず、リポジトリになるフォルダを作ります
  2. git init
    リポジトリとして使うために、gitに .gitフォルダを生成してもらいます。
  3. touch README
    コミットするファイルがないとこまるので、touchで適当に作ります
  4. git add README
    コミットするファイルとして、README を追加します。
  5. git commit -m "first commit"
    コミットメッセージを first commit でコミットします。
    -m で直接メッセージ入れてますが、別に付けないで
    エディタでメッセージ編集してもOKです。
    エディタの場合は、コミットメッセージを書き込み「保存」して、
    エディタを閉じることでコミットされます。保存してない場合は
    コミットされませんので注意
  6. git remote add origin <githubの読み書きできるURL>
    originって名前で、指定したアドレスにアクセスするよーって命令
    origin自体は特殊な名前であってうんぬんかんぬん。
    とりあえず、いま作ってるリポジトリは、指定したURLと、
    関連づいてるんだ!っていう設定
  7. git push origin master
    origin で設定したリモートのところの、masterってブランチに
    コミット内容をpushします!

こんな感じで、最初のリポジトリ作成まできました。

githubの画面

image

こんな風に、コミットした感じが見えますかね?

普通、こんな感じでつかうよね?っていう流れ

リポジトリもできて、最初のファイルも出来たんで、
次に、自分の作ったファイルとかをコミットしていく流れをやってみましょう

まずは、作業用のブランチをきりましょう。
masterブランチは汚さないようにするのが一番です。
ネットワーク経由の動作でコンフリクトすると面倒なので。

作業用にwoking というブランチを作ってみます。

$ git branch working

作ったブランチに移動します

$ git checkout working

ここのあとは、ファイル作ったりして、追加したり
開発らしいことします。

$ git add <ファイル名とか . とか。 再帰的に探してくれるよ!>

いらないファイルは、消してみたり
(手で消すと、整合性が取れなくなるので、gitのコマンドで消してね)

$ git rm <ファイル名>

一通り終わったら、commitしましょう

$ git commit

-m "メッセージ" でメッセージ直接いれてもいいですよ。

コミットが終わったら、

$ git log

でコミット情報を確認したり

$ git status

で漏れを確認したり。

$ gitk

gitkの素敵な表示で満足したり。

ちゃんとcommitできてそうなら、masterブランチに戻りましょう

$ git checkout master

ここから、サーバーにアップロードする準備です。

サーバーから、最新の情報を拾ってmasterブランチを更新

$ git pull origin master

最新の状態になったら、自分の変更(working)をマージしましょう

$ git merge working

変更が反映されてることを

$ gitk

とかで確認してOKそうなら、リモートへ送り込みます

$ push origin master

あとは繰り返し。

ここまでできたら、あとは繰り返すだけですよね。

最後に。

自分のリポジトリとかを、

$ git clone <リポジトリのurl>

とかでやったぱあいは、pushとかpullは、クローンしたところが元になるので
push/pullの origin やら master やら、指定しなくても動いたり。
(リモートが自動設定されるんだっけ?この辺よくわかってない)

色々やってみるのが一番早いと思いますが・・・

迷ったら、git help もありますし。聞けば誰かが。

追記

git clone すると、configに各種情報が自動で入るんですね。
なので、指定しなくても動くと。

最初の作成だけやったら、clone で作り直しちゃったほうが楽かも。とおもた

2011/02/10

Foxit Reader

PDFで資料読むのに、思いの外野でAdobeReader入れないで、
GoogleChromeで読んでたんだけど、

本当に、良いPDFリーダーは無いのかなと思って、Google先生に聞いてみたら

FoxitReaderってのがでてきた。

現在バージョンが2011年2月現在で 4.2 ですね。

良いところぐらいしかまだ見えてないんですが

  • 起動が早い
  • 動作が軽い
  • 簡単な編集機能がついてる

ぐらいでしょうか。とりあえず困らないレベルで使えそうなので、
しばらくこれで行きます。

インストール方法は、ここからダウンロードするあたりのボタンでたどって
セットアップを落として実行でOKです。
日本語版がちゃんとあるので、いいですね~
(プログラムに関しては英語でもいいけど、普通のソフトで英語だといろいろ読めん)