忍者ブログ
雇われるだけの人生から目指せ独立、社会人2年目なゲーム脳SEのブログ。更新頻度=週2~3回。
[1]  [2]  [3]  [4]  [5]  [6]  [7]  [8]  [9]  [10
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

80b7973bjpeg

iPhoneゲットできましたのでご報告です。


○7/11、朝5時
bdd1d732jpeg

始発で表参道まで来た結果がこれだよ!!
テレビで何度も放映された、ムカつく赤文字看板です。

f00a437cjpeg

ちなみに私はこの位置。あと10人ぐらいか・・・
目の前に何人もの報道関係者がやってきてレポーターの方が次々に報道しています。裏方がみれて面白いですが、気分は晴れやかではありません。

e5bf8e6cjpeg

後ろにもまだ並んでいます。
ちなみに正確な位置はここ。
東京都渋谷区神南1丁目周辺の地図 - Yahoo!地図
もはや表参道よりも渋谷駅からの方が近い距離です。なめてんのか。

この直後にフジテレビの中の人にインタビューされましたが、あまりにも専門用語丸出しのインタビューだったのでおそらく没でしょう(SafariはともかくブラウザすらNGってのがもう・・・どうやってしゃべれっていうんだ・・・)。よかったー。

このまま並んでいたらおそらく土曜日の朝までここにいるハメになったのですが、
iPhoneの神様は私を見捨てませんでした。
いきなり後ろから知らないお兄さんに声をかけられまして、
「16台入荷するのに4人しか並んでいない店」を教えていただけることに。
いかにもうさんくさい話です・・・

○7/11、朝7時
うーん、知らないおじちゃんについていっちゃいけないってママが言ってました。
でも私はあまのじゃくなのでホイホイついて行きました。Audiの後部座席は最高です^^

aabdc15cjpeg

・・・その結果がこれだよ!!うわあ、マジに4人+1人しかいませんよ。

2eb4df38jpeg

これが証拠の「iPhone16台入荷」。
おいおいおい、マジですかマジですか?

a3e698eajpeg

どうやらマジっぽいですよ!!
信じられません。どうやら明日の朝まで炉端に転がって待たなくてはならない運命から一転、
今日中に・全く並ばずに、iPhoneをゲットできそうです!

○7/11、朝9時
あと30分で整理券発行だというのに
1822cd99jpeg

これで全員です。どう見ても楽勝です。何この和やかムード・・・
表参道では阿鼻叫喚のiPhone争奪地獄絵図が広がっているというのに・・・

f4a52bcejpeg

しかも店頭はこんな雰囲気。これじゃiPhoneじゃなくてイーモバイルの製品を買うために並んでいるみたいなんですけど・・・

○7/11、朝9時30分
そして
26b21490jpeg

念願の整理券をてにいれたぞ!!
というわけで無事引き替えできました。8Gの黒です(どうせ16GBも容量あっても使い切れません。現在手持ちの音楽ファイル全部かき集めても3GBもありませんし、これ以降増える予定もありませんし、頻繁に聞く曲なんて500MB程度しかありません)。

それにしても、なんだろう、まるで奇跡みたいです。
このお店を教えてくれた方、本当にありがとう。
一緒に並んでいた人たち、ありがとう。

一緒に並んでいた皆さんは私みたいな ザ・オタク とは違って少々見た目は怖くて近寄りがたい人たちだったのですが、話してみるとなんというか、驚くほど普通で、驚くほど普通に悩んで普通に頑張っているんだなぁと痛感させられました。
確かに興味のある分野も性格も考え方も境遇も違うけれども、やっぱり徹夜して起きていたら疲れて死にそうになるし、良いことと悪いことを考えて生きているんだなぁ、と。
当たり前のことなのですがものすごく新鮮です。
おかげさまで渋谷とか歩いていそうなちょっと怖い人たちとも平気で話せるようになりました(むしろナンパの仕方だの風俗嬢のテクがどうのこうの何だの私の全然知らないことをご存じですし、ためになって面白いです)。

iPhoneだけじゃなくて貴重な体験と素敵な出会いまでセットでやってきて、本当にラッキーな一日でした。

PR
Firefox3を再インストールしました。

■目的:以下のGreasemonkeyスクリプトを動作させたい。
(何故か今の自分の環境では動かない)
NicoWatch Tools - Greasemonkey用ニコニコ動画拡張ツール - wktkラボ

■まずはバックアップ
○バックアップなどとったもの(機能として提供されているバックアップ)
ブックマーク
Adblock Plusフィルタ
IE Tab
ScrapBook
Tab Mix Plus

○手動でバックアップしたもの
Firegestures(一部の設定がsqlliteのdbファイルになっているので、それをコピー。基本設定はabout:configに納められているためバックアップ不能)
Greasemonkeyスクリプト(greasemonkey:editorはバックアップ不能)

○バックアップできなかったもの
WebDeveloper(全設定がabout:configにあり、バックアップ不能)

○専用ツールを用いてアドオンをバックアップする手段があるみたいだが、せっかくだから古くなったアドオンや設定を一端削除してすっきりしたい。Google Browser Syncがあれば使いたいけど・・・

■復旧作業
以下のアドオンを次々入れてゆく。
FireGestures :: Firefox Add-ons
テキストリンク (Text Link) :: Firefox Add-ons
TMP 0.3.6 is out-Tab Mix Plus
Adblock Plus: Element Hiding Helper :: Firefox Add-ons
Adblock Plus :: Firefox Add-ons
EasyList Filter Subscriptions for Adblock Plus - rick752
IE Tab :: Firefox Add-ons
Web Developer Localization
ScrapBook :: Firefox Add-ons
UrlParams :: Firefox Add-ons
Greasemonkey :: Firefox Add-ons
Googlebar Lite :: Firefox Add-ons

NicoWatch Tools - Greasemonkey用ニコニコ動画拡張ツール - wktkラボ
Mycroft Project: Http://eow.alc.co.jp/ Search Engine Plugins - Firefox & IE7

Firebug :: Firefox Add-ons

■NicoWatch Toolsを試す
動かない。何故だ。

■調査する
Firefoxのブランク・プロファイルを作成して、その中に一つずつアドオンを入れて調査していく方法をとる。
BlankProfile - Arantius - Trac
まずGreasemonkeyとNicoWatchのみを導入してテスト→動作した!
続いて一つずつアドオンを入れてテスト→AdBlock Plusを導入したら動かなくなった!
原因、一瞬で判明。

■さらに調査する
どうやら、ここで例外をはいている様子↓
var player_info = unsafeWindow.$('flvplayer').GetVariable('o');
この'flvplayer'とは何なのかfirebugで調査すると、
ニコ動のフラッシュビデオプレーヤーだった。
<embed id="flvplayer" height="540" width="952" 
・・・中略・・・
allowscriptaccess="always" quality="high" bgcolor="#FFFFFF"
name="flvplayer" style=""
src="http://www.nicovideo.jp/swf/nicoplayer.swf?ts=1215503884"
type="application/x-shockwave-flash"/>
よく見るとこのembedタグの上に<a>タグがある。
調べてみると、Adblock Plusがブロック可能要素の上につける「ブロックする」タグだった。
(クリックするとブロック要素送りになるタグ)

■謎はすべて解けた
犯人はAdblock Plus。
NicoWatch Toolsがデータを読み出そうとしたところ、すでにAdblockによって該当のembedタグ要素のコントロール権を奪われていたので、JavaScriptによるセキュリティ不正アクセス例外が発生していたようだ。
対処法は、
Adblock Plusのオプションにある、「オブジェクト(Flashなど)にタグをつける」チェックを外す。
これだけ。

■結局
再インストールの必要なんて無かった。まぁいいか。
いったん区切りがついたので、
2ヶ月前からせこせこ作っていたGoogle App Engineのアプリケーションを本番環境にアップしてみました。
まったくのモックアップなので友人以外には見せられません。あしからず。
きちんとしたバージョンを何とかして早くアップしてご覧に入れたいものです。

さて、一応無事にリリースの真似事にまでこぎつけることが出来たので、
ソースコードの管理、具体的にはタグとかブランチの管理をしたいなぁ、と思い立ち、
ちょっと調べてみました。

プログラマの思索: Subversionのブランチを有効活用してアジャイルに開発せよ
プログラマの思索: 大規模プロジェクトはバージョン管理が重要になってくる

なるほど、ブランチといっても二種類あるんですね。
リリースブランチ
タスクブランチ
今回はリリースを行ったので、まずは本日の日付とリリースバージョンをタグ名(2008_07_07_ver0.0.1)にして、タグを作成します。タグを作ったら、Trunkから保守用のブランチを切り出すのが通例のようなのですが、わざわざ保守が必要なレベルのものでもないので、今回は切りません。

余談ですけど、保守(Maintenance)のよい短縮語って何なんでしょう?
Abbreviation Index
こ のページを見る限りだと、Maint, Main, Mai, Mntなどが挙げられていますが、MainとかMaiはイマイチ、MntだとMountと勘違いしてしまいそうです(特にLinuxなど・・・)。 Maintかなぁ。でもMaintってダサい・・・Mntがいいなぁ・・・

話を戻しまして、次の改修はモデルをとっかえひっかえ大いじりする大規模な改修になる予定ですので、(2008_07_07_TASK_TotalModelRevamp)←こんな名前をつけてタスクブランチを切ります。
これで遠慮なくソースをぶっ壊せる(Trunkからすぐに元に戻せるから)というわけです。
うーん、バージョン管理って便利ですね。一人開発でもこんなに使えるとは。

でも私が知っている現場ではろくな使われ方されている記憶がないですね。バージョン管理。
(タグ命名規則がないのでタグ一覧が滅茶苦茶だったり、そもそもバージョン管理の何たるかを知っているプログラマのほうが少ないため、バージョンクローズ時にデグレ発生しまくったり)

よいプロジェクトはよいバージョン管理からですね!
Firefoxしか使わないので全く気づきませんでしたが、
現在、IE7で本ブログを見ると右のメニューバーの表示が崩れてしまいます。

CSSを操作して原因を調査してみましたが、
謎です。さっぱりわかりません。
といいますかFirebugなしでCSSデバッグしろなんて私には無理です。
たぶんいつも通りIE特有のバグだと思います。そういうことにしておきます。

というわけでご迷惑をおかけしますが、たぶんあと3個ぐらい記事をながせば正常化しますので、
なにとぞご了承くださいませ。
私がJavaを嫌いになった理由のひとつに、「ライブラリ管理が大変」であることがあげられます。たとえば、とある簡単なアプリケーションの中でJSONデータを扱いたくなったので、JSON-libをインストールすることにしましょう。
するとこれだけのdepandency(依存ライブラリ)が必要になります。
http://json-lib.sourceforge.net/
http://json-lib.sourceforge.net/dependencies.html
これを全部手で落として来い、と?あなたユーザを舐めてますね?

大規模なプロジェクトであればmaven2というプロジェクト&ライブラリ管理の決定版ツールがあるので、そちらに任せておけば全く問題が無いのですが、10クラス以内で収まるような軽量なプロジェクトのためにmavenの設定をしていたら、pom.xmlを書いている時間のほうが長くなってしまいそうです。要するに、ロクに使えません。

私としては、RubyのGemみたいに、
gem install json-lib 1.5
ってタイプするだけで依存ライブラリ含めてすべてのライブラリがダウンロードできるような仕組みが欲しいんです。ただのそれだけでよいのですが・・・とか思いながらいろいろと調べていた結果、
Raven
こんなものを発見しました!
なんとRuby Gem + RakeでJavaのプロジェクトの管理が出来るんだそうです。まさに欲しかったものはこれ。
早速インストールしてみました。

問題は、私Ruby初めてなんです。putsしかコマンド分かりません。
まぁスクリプト言語なんて何とかなるでしょ!
RubyGems の使い方 - WebOS Goodies

インストールしたら、まずはGemをプロキシの裏から通せるようにします。
プロキシ越しにGEM - 初心者Ruby頑張る。
要するに環境変数http_proxyを作るだけです。環境変数を使わなくちゃいけないのが少々気持ち悪いですが(同様の理由でJAVA_HOMEもあまり好きではありません)我慢。

あとはraven installコマンドを使うだけです。
raven install --proxy http://this.is.proxy.com:1111 commons-lang
これでcommons-langの最新バージョンが落ちてくるはずなのですが・・・なぜかプロキシのURLを認識してくれません。
ravenスクリプトの内部を覗いて調査してみましょう。
gem contents raven
これでインストールされているravenのコンポーネントが全部見れますから、あとはスクリプトの中をテキストエディタで覗くだけです。スクリプト言語の魅力はこのデバッグ性のよさというか、改変し放題なところですね。問題解決が簡単です。

ほどなくしてraven.rbの130行目が怪しいことに気づきました。
def self.parse_proxy(purl)  
  if (purl.length > 0)  
    match = purl.match('http://(.*):(.*)@([^/]*):([0-9]*)')  
    match = match.to_a  
    match.shift  
    puts "Using proxy #{match[2]} and port #{match[3]}"  
    [match[2], match[3].length == 
0 ? 80 : Integer(match[3]), match[0], match[1]]   else     nil   end end
どうやらプロキシを指定するURLが、正規表現にマッチしていなかったみたいです。
raven install --proxy http://u:p@proxy.com:1111 commons-lang
こんどはうまくいきました!無事にcommons-langの2.2がダウンロードされました!
WS000162.JPG

・・・て、あれ?2.2?
今の最新は2.3だろ?
嫌な予感がします。
raven install --proxy http://u:p@proxy.com:1111 commons-lang:2.3
raven: 2.3なんてねーよwwww

raven install --proxy http://u:p@proxy.com:1111 ezmorph
raven: ezmorph?何それ食えるの?

raven install --proxy http://u:p@proxy.com:1111 JSON-lib
raven: JSON-lib?何それ食えるの?
だめだこいつ・・・はやくなんとかしないと・・・
要するに、去年かおととしぐらいからravenのリポジトリ情報が最新化されていないみたいなんです。
おかげさまで新しいライブラリが全く使えません。
しかもこのravenマイナーなプロジェクトですから、ほかにリポジトリ情報がある場所もわからず・・・


と言うわけで結論。Ravenはいいシステムなんですが、メンテされてないです。使えません・・・

今度は
Apache Ivy, the agile dependency manager 
こんなのを試してみようと思います。
開発にはIDEが欠かせません。確かにvimやEmacs一筋というのも漢らしくてかっこよいとは思うのですが、今は限られた時間に1行でも多くのソースを書き1秒でも早くバグを発見したい時代ですから、やはりIDEあってこその開発でしょう。

Python のIDEにはいろいろあります。Python標準付属にIDLEというIDEもありますし、EclipseのプラグインにPyDevという高機能なIDE もあります。ですがこのたび、PyScripterというdelphiによって作られたIDEが日本語化されて公開されたというニュースが舞いこんできま したので、早速試してみることにしました。Python専用IDEと言うのが面白そうですが、果たしてPyDevから乗り換えるだけの魅力があるでしょう か?

参考リンクはこちら:
pyscripter - PyScripter Development Site
MMM-Experts - Products
PyScripterが日本語化されます - 偏った言語信者の垂れ流し
PyScripterの日本語化

動かしてみたイメージはこんな感じです。
WS000163.JPG

ちょっ と使ってみて感じられたメリットは、まず非常に動作が軽快です。といっても比較対象が重くて仕方がないEclipse+PyDevですから相手が悪いです が、それでもPyDevで出来ることならほとんどなんでも出来て、その上でこの軽さなら悪くないんじゃないでしょうか。

それから内蔵 Pythonインタープリタが非常に優秀です。PyDevのデバッグビューも好きですが、こちらのデバッグビューはPython実行環境上にあるすべての オブジェクトをすべて表示できる(もちろん__builtin__やインポートしたモジュールオブジェクトもです)ため、Pythonの勉強にもなりま す。っていうか、なってます。
WS000164.JPG


逆にデメリット。まずエディタ機能が貧弱。私にとって、 Alt+矢印キーによる行の入れ替えとCtrl+Dによる行一括削除が出来ないエディタはエディタじゃないです(特にCtrl+Dの選択行削除機能がつい ているエディタが中々見当たりません。Sakuraに似たような機能がありますが一度に複数行削除できないですし、EmEditorに至ってはそもそもそ ういった機能自体がありません。秀丸にはあるのかな・・・)。キーコンフィグが出来るのは素直にうれしいですけど・・・。

続いてもう一 点、エクスプローラ機能とプロジェクト管理機能が弱いです。別に見たくもないSubversionの設定フォルダまで見えてしまうのはちょっとねぇ・・・ と言う感じ。そこまで絶望的じゃないですし、特に「ローカルマシン上の複数の箇所においてあるPythonスクリプト資源に高速にアクセスするという」コ ンセプトの上でしたら非常によいと思いますが、「ひとつのプロジェクトをじっくり開発する」にはあまり向いていないエクスプローラビューです。

最 後に、一番嫌なところ。Google App Engineのdev_appserverをデバッグモードで起動できません。デバッグをするためには内部Pythonインタープリタか外部(ネットワー ク上の別のマシン)のPythonインタープリタに連携して起動する必要があるのですが、外部のインタープリタなんて早々用意できませんし、内部のイン タープリタでdev_appserverを走らせると完全にフリーズします(接続待ち待機に入るため。Pythonスクリプトだけ別スレッドで起動できな い)。
一応外部ツールとして起動することは出来るので、全くどうしようもないわけじゃないですが、ブレークポイントを置いてデバッグすることが出来ないのでPyDevに圧倒的に劣ってしまいます。


と言うわけで結論。
軽 量で高機能、ちょっとしたスクリプト(たとえばTracのhookスクリプトとか)を書いたり編集したりするには非常に適している。しかしフレームワーク やPythonを利用したWebサーバでアプリケーションを作成するには向いていない(別スレッドで起動してデバッグが出来ないため)。Eclipseが 重過ぎて使えない環境(たとえばメモリ1GBしかないとか)では活躍できそう。もしくはきちんと外部のPythonインタープリタとの連携設定を用意すれ ば化けるかも。
相変わらずGoogle App Engineのアプリを作成しています。
何とか来月一日までには本番環境にアップしていたいと考えていたのですが、遅々として進みません。正直アプリ作成をなめすぎていたと痛感しております。
今までやってきた仕事は全部「設計書があったり、すでに既存の動いているものがあるところを改修」でした。今はすべて自分がやらなくてはなりません。ゼロからものを作るのがこれほど大変だとは・・・
さらにだんだんと管理対象が増えてきて、脳みその容量が追いつかなくなってきました。どこから手をつければいいのか・・・いままでの自分の仕事が以下に甘かったかと痛感させられます。

世間の厳しさをようやく知ったところに、ひどい追い打ちが。
今日気づいたのですが、Google App Engineはトランザクション処理が弱いんです。

私の中でのトランザクション処理の常識(Java)は、
try{
int num = pstmt.executeUpdate();
pstmt.commit();
} catch(SQLException e) {
pstmt.rollback();
} finally {
pstmt.close();
connection.close();
}
こんなソースだったので、トランザクション処理なんて楽勝だろうと高をくくっていたのですが、
ふたを開けてみると、まぁまぁ出るわ出るわ、致命的な制限の雨・嵐。
  1. トランザクション内部でQueryは実行不可能、Keyを利用したgetのみ可能
  2. put()ならびにdelete()は1モデルインスタンスにつき1回のみ
  3. トランザクション処理中のモデルは、すべて一つのエンティティグループに属していなければならない。
  4. 現状、parentのいない親エンティティとそれを親にする子エンティティを同一のトランザクションで生成できない
事前にきちんとドキュメントを読み込んでいなかった自分が悪いし、何より分散DB環境なんだからこのぐらいの制約は当たり前だろうとも思いますが、しかしこれではトランザクションが使い物になりません。

上記の制約をまともに受けると、こんなソース(Python)になってしまいます。
try:
old_model1 = copy_model(model1)
model1 = edit_model1(model1, hogehoge)
result1 = db.run_in_transaction(update1, model1)
result2 = db.run_in_transaction(update2, model2)
except:
if result1:
#元の状態に戻す、ここで例外起きたら知らん(もう1つtry節が必要)
db.run_in_transaction(update1, old_model1)
これでは一貫性のあるトランザクションとは言えません。
うーん、困りました。こんなところにApp Engineの弱点があるなんて。
とりあえずはトランザクションのことを考えないで先に進めることにします。
難しい問題だからじっくり考える必要がありそうですね・・・


おまけ
ローカルで上記の制約を確かめようとテストしてみたのですが・・・
67bb062e.jpeg

f3bee166.jpeg

9f39c6aa.jpeg

あれ?ちゃんと登録できちゃうんですけど。
本番環境じゃないと再現できないんでしょうか・・・
Google App Engine用のライブラリってあまり聞かないなぁとふと思い立ちました。
そもそもGoogleの用意しているライブラリが優秀
Djangoも優秀
専用で用意しなくてもPython用のライブラリなら何でも使える
Python自体が最初からかなりの機能を持っている
App Engineの制約が大きいため突飛なことをするライブラリが必要とされない

いろいろ理由はありそうなんですが、
個人的には、db.Modelのプロパティに持たせるバリデータ関数のうち、
よく使いそうなものをライブラリにしたいんですよね。
たとえばこんな感じでValidatorってクラスを作ってみたい。
class FooBar(db.Model):
name = db.StringProperty(validator=Validator.length(3,8))
no = db.IntegerProperty(validator=Validator.value(1,100))
#複数のvalidatorを混ぜてみたりしたい
#lengthが10以下でalphabetかどうかチェックするならこう
test = db.StringProperty(validator=Validator.compose(
(Validator.length(0,10), Validator.alphabet())
)
どうでしょう、結構便利だと思うのですが。
ところでPythonで関数を関数から返却できるんでしょうか?と思い立って調べてみました。
Python 文法
http://morchin.sakura.ne.jp/effective_python/functional.html
おお、lambdaだと複数行が実行できないけど、defの中でdefすればうまくいきそうです!

というわけで今作っているアプリでも必要になりそうなので作ってみようかな。出来たら公開します。
近頃飲み会が非常に多いです。
ボーナス直後ということで皆さん財布の中身が分厚いから、いろいろなところからお呼びがかかります。盛り上げ役でもなく大食漢でもない財布役でもない私を誘っていただけるのですから非常に嬉しいことです。

今日は金曜日と言うことで勤務先から本社に戻りましたので、本社の同期仲間と呑みに行きました。
前回までの作業で、自宅サーバでHTTPSが使用できるようになりました。
今度はSubversionとTracをHTTPSに対応させます。

といっても、何も特別な作業は必要ありません。
apache側のバーチャルホストの設定をすべてのページに対して適用しているので、
Subversion, Trac, どちらもすべてのページに対してSSLによる保護が適用されます。

WS000159.JPG

会社から試しにつないでみました。プロキシに阻まれることもなく、バッチリとリポジトリの中身が見えます。暗号化万歳です。

それではここからは今回の本題、SubversionとTracの連携を行ってみます。
Tracのチケット機能は便利なのですが、
  1. Tracでチケットを見る
  2. Eclipseで修正→Subversionでコミット
  3. Tracのチケットにコメントを書いてcloseする
これは煩雑で面倒なプロセスです。
SubversionのコミットコメントがTracのチケットのコメントになったり、
コミットと同時にCloseが行われたら、もっと楽になりますよね。
(むしろチケット=タスク管理とコミット=ソース管理を一体化させることこそがTracのチケットシステムの最大の魅力だと思うわけです)

というわけで設定を施してみました。参考サイトはこちら。
乳牛日記: Subversionのcommitコメントをtracチケットに反映させる
[Subversion][trac]チケットとコミットの連携設定: 30からのBlog
[Think IT] 第4回:チケットとソースコードを連携せよ! (1/3)

書いてあることはみんな一緒です。
「Subversionのpost-commitフックスクリプトから、Tracの専用Pythonスクリプトを呼び出す」
/usr/bin/python /home/web/trac/contrib/trac-post-commit-hook \
-p "$TRAC_ENV" \
-r "$REV"
これだけです!
ちなみに、上記サイトで設定されている-uとか-mオプションはTrac v0.11ではすでにdeprecatedにされており、v0.12で廃止されると明言されておりますので、使用しないようにしました。

さらにさらに、
気の向くままに・・・: trac-post-commit-hookでステータスも変更
こちらのページを参考にして、assigned #1のようにコマンド入力すると、チケットのステータスがnewからassignedになるようにしました。

早速コミットして実験してみましょう。
・・・とおもったのですが、うまくいきません。
デバッグログも表示されないですし、何が起きているのかさっぱりわかりません・・・

ん?まてよ・・・
編集が終わったら、「chmod a+x hooks/post-commit」と入力し、
実行ビットを立てるのを忘れないようにする
あああ!しまったシェルスクリプトなのに+xがついてなかったあああああ!!!

WS000161.JPG

chmodしたら一発で動くようになりました。ああ、酷いミスだ。

さらにもう一箇所問題が。
チケットのステータスをassignedに変更できるようにしたのですが、
trac v0.11から、assignedとは別にacceptedというチケットステータスが増えたみたいなのです。
TracWorkflow – The Trac Project – Trac
assignedとは別に、accept用のスクリプトを用意する必要がありそうです。
コミット時に、チケットのステータスをnewまたはassignedからacceptに変更するようにすればよさそうですね!
カレンダー
07 2017/08 09
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
ブログ内検索
最新コメント
[11/13 DSLR-A850]
[08/29 逆援助交際]
[08/23 クンニ]
[08/22 熟女]
[08/19 痴漢]
はてなブックマーク
プロフィール
HN:
akisute
性別:
男性
職業:
システムエンジニア
趣味:
ゲーム・東方・ニコ動。あと散歩。
バーコード
推奨環境

横幅900px以上、Firefox 3, Safari 3, Opera 9.5, Chrome 0.2以上。IE7ギリギリ対応。IE6未対応。

忍者ブログ [PR]