サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
中東情勢
coolstyle.hatenadiary.org
ひさしぶりのt-wadaさんの日記に触発されて思ったことを書いてみます。特に注記する必要はないと思いますが、個人的な話です。 会社としての組織のあり方もそろそろ変わってくるべきだと考えてます。具体的に言うと、タイトルにあるような、階層(ヒエラルキー)のある体制はもう止めて欲しい。ということです。 何が問題なのか? 階層を作ってしまうと、リスペクトの心がなくなってしまうからです。上下関係のある体制では、下から上に向けた尊敬の念が生まれることは自然な流れですが、上から下というのはなんとなく違和感を感じてしまいます。そのために、なんていうか、ギスギスした感じを持ってしまうんです。 チームで仕事をするためには何が必要でしょうか?それはチーム内での信頼関係です。お互いをリスペクトし合うことでチーム力が発揮されます。 上司とか部下なんていう関係を作ってしまっては、権限や責任のことばかり気にしてしまい、
プログラミング言語は主にJavaとRuby 最近は少しずつ関数型言語も学習中。Smalltalkには憧れるがJavaScriptにはどうも馴染めない。 個人的にWebアプリをつくるのが好き。GAE/J + GWTで個人的な家計簿アプリなどをつくって楽しんでいる。 TDDはJavaというかJUnitしかできない軟弱者。CIは他人がJenkinsを動かしてるのを眺める程度。興味がないわけではないが積極的に推進してくれる人がいるので任せてる感じ。 開発プロセスが好き。というか無駄のあるチーム作業が嫌い。個人は暇を持て余すべきだがチームが時間を持て余してはならないと考える。 効率的な開発を進める補助としてツールを使うのが好き。ツールは少しの操作で大きく広範囲に使用できることが望ましいと考える。 逆にルールとして存在するツールは多くの場合、効率化の弊害になるのではないかとも考えている。 ツールができ
ツールは手段です。ツールを使用するには目的が伴うのが普通です。 本記事では目的に応じたIssue Tracking Systemの使い方を示したいと思います。 Issue Tracking Systemを導入する目的 Issue Tracking Systemを導入する目的はなんでしょう? 要件を管理したい タスクを管理したい 報告書の元ネタにしたい 情報を共有する場にしたい 進捗を管理したい 課題を管理したい いろいろ挙げられると思いますが、ここでは次の3点に絞ります。 要件管理 要件 + タスク管理 課題管理 順番に見ていきます。 その前に前置き 要件という用語はユーザーストーリーとして置き換えてもらっても構いません。 ざっくりと次のようなイメージをしてもらえば良いでしょう。 要件(ユーザーストーリー) お客さん*1が望んでいること、お客さんに提供する価値 タスク 要件を実現するために
うちの会社用にカスタマイズしてるのを公開してます。興味あったら試してみてください。 https://github.com/YusukeKokubo/redmine_backlogs ざっくりとしたカスタマイズのポイントとしては Task Board タスクの移動時に注記を入力できるようにした 本当はwindow.promptじゃなくてちゃんとしたポップアップを作りたい 終了してるストーリーとステータスを背景色でわかるようにした アバターを表示 タスクの入力項目から優先度を削除して代わりに予定時間を追加 終了したタスクは溜まると縦に長くなるのでギュッと表示するようにした 担当タスクのフィルタリングをできるようにした Master Backlog Backlogs管理外のトラッカーのチケットもMaster Backlogから参照できるようにした ストーリーのステータス選択の選択項目はプロジェク
有効ではないと思ってます。 〜 これが正解だとは思ってませんが以下、個人的に思ってることを書きます 〜 Redmineでは標準でガントチャート機能があってチケットの開始日、終了日にあわせてチャートを作ってくれます。初めてRedmineを見る人は、「これを使えば進捗管理ができるんじゃないか?」と思うことでしょう。ぼくも思ってた時期がありました*1。 しかし、実際にチケットをWBSみたいに運用するのはそれなりの労力を求められます。 なぜでしょうか。 スケジュールに変更が起こった時のメンテナンスコストが高い 開始日、終了日を簡単に変えられるUIではない メンテナンスに時間を取られることももちろんですが、日付を変える作業のめんどくささが半端なくてRedmineを使うのが精神的苦痛になります*2。個人的にはMS ProjectのUIでも満足できていません。(使いこなしてないだけなのかもしれませんけど
社内で使ってるRedmineのチケットを定期的に状況報告をメールでするようにしたい、という話。0.8からそういう機能がつくんだけど、いまいち自分の使い方と合ってないみたいなので、こちらを参考にして自分で書いてみた。 やりたいことは次のようなこと 決まった時間(朝と夕方)にプロジェクトごとにチケット情報をまとめる 期限が過ぎているチケット 今日が期限のチケット 今日作成されたチケット 今日更新されたチケット プロジェクトメンバーへメール送信 1メール/1プロジェクト 実際書いてみると、まだまだRedmine/RailsはおろかRubyのことも全然わかんないなー。class << selfとか何のためにやるんだろう?とか、DBからデータ取る方法が雑過ぎるような…、とかいろいろ勉強不足なのかよくわかりました。 更新: 2009/4/21 SMTPサーバの設定をmail.ymlから読むようにしまし
Redmineの機能の1つとしてSubversionとの連携があります。リポジトリコミット時にチケット番号を入れることでコミットとチケットを1対1で関連付けられてとても便利です。 しかし、Redmineは(おそらく)チームで使うものです。自分は正しく入力していても他のメンバーが入力を怠っていたらせっかくの機能が無駄になってしまいます。 なんとか入力を習慣づけてもらうために策を講じました。普通は運用ルールを作って守ってもらうのがよいと思いますが、そうは言ってもこちらが意図したとおりの操作を行ってくれるのは少ないものです。 ぼくはこういうのでとてもイライラしてしまう性質なので、コンピュータ側で入力を強制してもらうようにしています。(この場合、周りのメンバーとよく話をしろ、というのは別の話にしてください) コミットメッセージにチケット番号が入っているかチェックする 単純にコミットメッセージをチェ
アジャイルサムライ−達人開発者への道− 作者: Jonathan Rasmusson,西村直人,角谷信太郎,近藤修平,角掛拓未出版社/メーカー: オーム社発売日: 2011/07/16メディア: 単行本(ソフトカバー)購入: 42人 クリック: 1,991回この商品を含むブログ (257件) を見る レビュアーとして 僭越ながらレビュアーの一人として参加させて頂きました。錚々たる面々の中で自分ができることをしたつもりです。 レビュアーを選ぶときに、それぞれの切り口を期待してレビュアーを選考されていたみたいですが、自分がどういう役割で選ばれたのかは謎のままでした。 内容について 監訳者・レビュアーの方々含めて多数の記事が上がっているのでそちらを参考にされた方が適切かもですが。内容としてはアジャイルなソフトウェア開発の概要から実践的な例までコンパクトに解説しています。 「アジャイルってなに?」
前置き 「Redmineがメール受信」という表現はRedmineが稼働しているサーバ上で"rake redmine:email:receive_pop3"を実行したときだと解釈してください。 背景 Redmineにはチケットが更新されたときなどにメールで通知してくれる機能があります。さらにその通知メールに返信することで注記を書けたりします。 さらには、Redmineのメールアドレスを宛先に含めておくだけでRedmineがメールを受信してチケットにできる機能もあります。 いろいろ便利な機能がそろっているのですが、うちの会社の使い方ではちょっと痒いところに手が届きません。 なにに困ってるの マネージャ「お客さんからこんなこと頼まれたんだけど、Aさんこの作業お願い!」 とお客さんからの依頼をAさんのメールアドレス宛にRedmineのメールアドレスをCCに入れて転送しました。*1 Redmineは
コントローラのフック slim3を使うとorg.slim3.controller.Controllerを継承してコントローラを作ることになるけど、全コントローラで共通の処理をするにはどうすれば良いのだろう?ログイン制御で未ログインの状態の場合は自動でログイン画面に遷移するようにしたい。 Controllerを継承した抽象クラスを間に挟ませて処理をするのが適当なんだろうか?それともslim3のfrontControllerとは別のフィルタを使った方が良いのだろうか? 追記: slim3のController#runはabstractなので単純に処理をフックするのは難しい?Controller#setUpなんてメソッドもあるけど、これで遷移の制御まではできないみたい。 モデルのフック Google App Engineでは標準でモデル操作に対するフックを書く機構がある。 http://appe
前振り オブジェクト指向が何なのかという議論はいたるところで語られますが、元祖となるアラン・ケイのオブジェクト指向であったり、派生したすっぽすっぽ先生の抽象データ型のオブジェクト指向であったりと定義からしてゴチャゴチャしてなかなか収束しないことが多いです。 そもそも「オブジェクト指向」という言葉なのになぜか「クラス」が主役かのように語られることが多いのが疑問です。大切なのはクラスではなく実体化されたインスタンスでありオブジェクトであるはずです。クラスはあくまでもオブジェクトの1つでしかありません。 (メタプログラミングは置いといて)クラスはどれだけ頑張っても静的な情報しか持てないので、そこから個々のオブジェクトがどう連携してメッセージをやり取りしているかをイメージできるか、プログラミングできるか*1が1番重要であるはずです。 オブジェクトとは何か? オブジェクトとはなんでしょうか?プログラ
2つほど公開します。 第10回shibuya.tracで発表したデモ用のRedmineに入れてたプラグインです。 同じものを会社でも使ってます。 簡単にRedmineを試してみたい人は、デモ用のRedmineをまるごと置いてあるのでここから使ってみてください。 http://yusuke-kokubo.appspot.com/events/shibutra10/ redmine_attachement_viewer チケットに添付したファイルを一覧で見ることができるプラグインです。プロジェクトモジュールになっています。ActiveRecordがわからないのでSQLを直書きしてます。 %REDMINE_HOME%/vender/plugins/に配置するだけで動くはずです。DBマイグレーションなど特別な操作は不要です。 管理画面の権限レポートから「View attviewer 」にチェックを
オブジェクト指向プログラミング(OOP)はとやかく歴史的な経緯と誤解によって様々な解釈が入る概念です。 人それぞれのOOPが出来上がっていますが実際のところ、なにに役立つのだろう?オブジェクト指向が結びつく先はどこなのか?そんなことをたまに考えます。 最近のぼくの考えでは「プラガバルなデータ構造を実現できることにOOPの意味がある」となっています。 プラガバルとはおそらくplugin + ableの造語です。「取り外し可能」とかそんな意味です。ちなみにこの言葉はSmalltalkで有名な青木 淳さんの日系バイトの連載で知りました。 その連載では「プラガバルMVC」を説明して、「View-Controllerの関係さえしっかりしてればModelは取り外し可能なんだよ」とぼくの記憶してる限りでは書いてあって、当時ジュンク堂で雑誌を立ち読みしながら、なるほど、と思いました。 オブジェクト指向では
とりあえずセットアップするところまで。 基本的には公式サイトの通り http://www.redminebacklogs.net/en/installation/ 必要なライブラリをダウンロード gem install holidays gem install icalendar gem install prawn Redmine Backlogsをダウンロード cd %REDMINE_HOME%\vender\plugins git clone git://github.com/relaxdiego/redmine_backlogs.git #[origin/master] or [origin/v0.4.0]をmasterにすること #もしくはgit cloneするよりかは、ダウンロードした方が簡単かも http://github.com/relaxdiego/redmine_back
振り返り レガシーコード改善の大きな項目として、 テストコードを書く リファクタリングする の2点があると思います。 自分はRubyのレガシーコードを提供してたこともあって、Rubyチームに入ってました。 みんなでワイワイ言いながらテストを書いてるときには気づきませんでしたが、今になってちょっと気になることが出てきました。 それはリファクタリングする時間がまったくなかったことです。 みんながテストコードを書くので精一杯になっていたため肝心のレガシーコードを改善するところまでは到達出来ませんでした。 自分としてはTDDの1番大事なことは「黄金の回転」だと思っているのでリファクタリングまでできなかったことはちょっと残念でした。 どうすれば良かったか(自分なりに考えてみた) テストコードを書く前に、チーム内で計画を立てたら良いと思いました。 ここでいう計画とはXPの計画ゲームとか、スクラムのスプ
先週末の10日、11日とTDD BOOT CAMP 名古屋が行われました。 内容や感想とかは色んな人が書いてるのでここでは客観的に雑感のみ書きます。 名古屋アジャイルの存在 今回のTDDBC名古屋は名古屋アジャイル勉強会が全面的にバックアップしていました。 KPTや朝会、振り返りというリズムがTDDと結びつくことで効果的に参加者の心に残ったと思います。 会場の設備の準備など自分もほんの少しだけお手伝いさせていただきました。 id:t-wadaさんとの会話 1日目夜の懇親会でいくつかお話させていただきました。覚えてる限りの記憶をメモ。 Redmineの話 (t-wada)Redmineの商用プラグインってあるの? (こくぼ)プラグインはたくさんあるけど商用は聞いたことないですね (こくぼ)Rubyの公式サイトもRedmine使ってますよね (t-wada)そうですね (こくぼ)Redmine
仕事の内容的にSE業務、PG業務ともに引き継げる相手ができてきたので自分は次のステップに入ろうと思います。お題は「プロジェクト管理の理想」です。これはぼくがずっと前から理想を追い求めていたことでもあります。 プロジェクト管理とひとくちに言っても色々な側面を持っているので語るのは難しいです。世間一般的なプロジェクト管理がどんなものなのかもぼくはよくわかっていませんし。*1 なのでここではあくまでも自分が考える理想を掲げます。 そもそも何故必要なのか? なぜプロジェクトを管理する必要があるのか?その答えをとっても簡単には収まりそうにありませんがぼくが考えるのは「チームで作業するため」です。 本当なら企業にとって利益を出さないといけないのでコスト面も重視しないといけませんが「継続的に効率的なチームビルディング」のために管理する。というのがぼくにとっての理想です。あくまでも作業をする側からの目線で
RedmineAirを動かすためにはRedmineがどうしても必要になります。 すでに社内にRedmineが動いてたら良いのだけど、そういうわけにもいかない時のために構築の手順をメモ。 Redmineをチェックアウトする前に Rubyインストール artonさん作成のインストーラを使います。 http://arton.hp.infoseek.co.jp/indexj.html Railsのインストール お馴染みのgemsを使ったインストール gem install rails -v=2.3.5 sqlite3のインストール こちらからsqlitedll-3_6_XX_X.zipをダウンロードして、ruby.exeが置いてあるディレクトリ(もしくはPATHが通っているところ)にコピー。 http://www.sqlite.org/download.html gemsからsqlite3へのアダ
Google App Engineでformにenctype="multipart/form-data"を入れた場合、サーバ側で文字化けしてしまう。入れない場合は何も問題ない。検索するとPHPでの事例がいくつか見つかる。PHP以外の問題は見当たらない(ざっと調べた限りでは)。 サーバ側の問題?うちの環境だけだろうか? 追記: コメント欄を読んでいただければわかりますが、結局はslim3の問題で最新のバージョンではfixされてます。
以前作ったものをカスタマイズしました。SMTPサーバの設定をmail.ymlから読むようにしたりちょっとした修正です。 #相変わらず泥臭いつくりですが… 2008-12-15 - こくぼ@Everything is the experience. ここのページにあるやつをカスタマイズした。 RedmineでチケットをCSVから一括登録/更新するプラグイン - エンジニアブログ - スカイアーク といっても85%くらいは作り直したけど。オリジナルと比べて改善させたのは以下の点。 カスタムフィールドにも(できる限り)柔軟に対応できる 列の順番を動的に指定できる 登録された結果がきちんと見れる 管理者権限を持ったユーザーじゃないと使えない なんとか公開できないものかとオンラインストレージを調べてみたけど「これ」ってものが見つからない。(はてながこういうサービスすれば便利なんだけど) ということで
Tropyについてはこちらをごらんください。 http://www.hyuki.com/d/200511.html#i20051103183338 Bigtable部分はJavaでコントローラとビューをScalaで書きました。 http://tropy-scala.appspot.com/ F5キーを何回か押してランダムに表示されるページを見てください。 編集や追加もご自由に触ってください。 ソースコードはこちら http://code.google.com/p/tropy-scala/ 実はまだScalaの利点をまったくと言って良いほど活かせていません。おいおい学習してゆく予定です。
行ってきました。一言で言えば素晴らしいイベントでした。内容についてはスライドを観てもらうとして感想を簡単に。 名古屋Ruby会議01 - Regional RubyKaigi セクションA 企業によるRuby活用事例。ビジネス的な話であまり期待はできないかと思ってたけど全然そんなことはなかった。 名古屋でRubyを製品開発にこれほど使ってる企業(イーシーワン)があるとは思ってもなかったし鶴舞線がRubyラインと呼ばれてるとは初めて知った。 おそらくRubyラインを知ったことはこの会議で1番の収穫(というか驚き)。 セクションB ささださんによるVMカイゼンのお話。タブレットPCによるプレゼンはわかりやすくて良かった。話してる最中やたらと歩き回りながら喋っていたのが印象的。歩きながら喋るというと、Java/Seasar関係のひがさんもそんな感じだけど、ささださんの騒がしさはそれを上回っていた
エンジニアであるなら自分が働く場所は最善を選ぶべきだ。そして自分の仕事に誇りを持つべきである。職場の環境を少しでも自分の理想に近づける努力をするべきである。それができない会社なら辞めてしまった方がよい。それが社会のためだ。 エンジニアであるのなら、自分のちからを周りに誇示しなければいけない。アピールしなければいけない。爪は隠すものではない。磨くものだ。それができない環境なら、それは変えなければいけない。絶対に。 真に価値のある技術は生活に革新を起こす。それができるのはエンジニアだけである。世界に影響を与えられるほどのエンジニアは極めて限られているがもっと身近な日常に限ればいくらでもソフトウェアの可能性は広がっている。 しかし、IT企業を自称する多くのSI企業は果たしてどれだけ自分たちの業務をIT化できているのだろうか?自信を持って提案できるほどの技術力をどれだけ持ち合わせているだろうか?エ
ここのページにあるやつをカスタマイズした。 RedmineでチケットをCSVから一括登録/更新するプラグイン - エンジニアブログ - スカイアーク といっても85%くらいは作り直したけど。オリジナルと比べて改善させたのは以下の点。 カスタムフィールドにも(できる限り)柔軟に対応できる 列の順番を動的に指定できる 登録された結果がきちんと見れる 管理者権限を持ったユーザーじゃないと使えない なんとか公開できないものかとオンラインストレージを調べてみたけど「これ」ってものが見つからない。(はてながこういうサービスすれば便利なんだけど) ということで色々調べてたらそもそも、 これらの著作物の二次著作物を再配布することはできません。 http://www.skyarc.co.jp/engineerblog/entry/2635.html とあるので、まずいのかも。どうしたものか。 追記: 時間が
やっと会社からWebに接続できるようになりました。これで更新の頻度も上がることでしょう。 仕事が忙しくなければ…。 ところで、仕事が忙しくなればなるほどタスクの管理が重要だなあと思いませんか? 余計なエネルギーを使わずにTodoを管理できたら良いのになーと常日ごろ考えてばかりで、ちっとも仕事がはかどりません。
ずっと欲しかったFirefoxプラグイン。もっと早く見つけたかった。 Firefox アルク検索プラグイン - Ryoの開発日記 Neo! ただアルクは今月になってサイトが更新されたので、以下のように内容を変更した方が良いと思う。(前よりもURLがシンプルになってる。) <SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/"> <ShortName>アルク辞書検索</ShortName> <Description>アルク辞書検索</Description> <InputEncoding>UTF-8</InputEncoding> <Image width="16" height="16"></Image> <Url type="text/html" method="GET" template="http://eow
-コミュニティとの関係 - まさたか日記経由で知ったこの記事。ちょっとこれは酷いと思う。 Rubyは開発生産性の高さで定評があり、システムの作り直しも容易とされる。この特徴を生かし、「プロトタイプを短期で開発し、顧客に提示。さらに要望を引き出して、構築を進める」という繰り返し型の開発スタイルを取ることで...(略) ラピッド開発とも呼ぶこの開発手法は、仕様を巡る誤解を早い段階で解消できるし、顧客の満足度も高めやすい点がメリットとされる。亀田氏によれば、「顧客と円滑なコミュニケーションが図れ、SEのストレス要因も減る。Rubyは、SEを元気にするコンピュータ言語」だそうだ。 「基幹システム」が得意なSIerこそOSSに取り組むべきだ | 日経 xTECH(クロステック) こっちはもうちょっと良い感じ。 パネルディスカッションで印象的だったのは、楽天の森氏も、CTCの小島氏も“Rubyの楽しさ
コンソールでMayaaを動かしたときに、default.mayaaが読まれてないような…。 どこか勘違いしてるんだろうか。 < 引数で-bで指定するパスに置けば良いと思ってる。 原因はある程度特定された。問題が起きるのは、 http://mayaa.seasar.org/documentation/equals_id_resolver.htmlにあるid属性無視の設定をしていて default.mayaaでを指定していて id="content"とm:id="content"をごっちゃに使っているような環境 で、期待通りに動いてないような感じ。どういう動きを中でしているのかわかってないので曖昧な言い方しかできないけれど。 そんなことではなかった。 どうやら、default.mayaaは読まれるんだけど、extends="レイアウト.html"は無視されるような仕様になってるみたいだ。 とり
次のページ
このページを最初にブックマークしてみませんか?
『こくぼ@Everything is the experience.』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く