2010年6月29日火曜日

MT SubCategoriesの中だと、__counter__ とかがきかない

http://www.mt-matome.com/category/get-catid.html

http://gyauza.egoism.jp/clip/archives/2007/05/070518-css-class/

うぉおお

かわなきゃ!



にほん2 パラグアイ1

MT 今日のはまった点

MTの変数同士で比較するときの注意点について。。

MTIfの中でMTタグは使えないようなので、
※例えば
<MTSetVar name="test" value="1">
<MTSetVar name="exam" value="2">
<MTIf name="teat" eq="<MTGetVar name="exam">">
しょり
<MTElse>
しょり2
<MTIf>

はできない。ので、「$」マークを頭につけると、値が取り出せるようになる。
<MTIf name="teat" eq="$exam">


http://d.hatena.ne.jp/wonohe/20080705/1215234439

2010年6月28日月曜日

MT 基礎編1

MTの基本

●タグの書き方
3種類くらいあって、どの書き方でも表示可能。
混在しててもOK



<$MTGetVar$>

2010年6月24日木曜日

MT5のテンプレートを読み込む順番

MT5はウェブサイトっていう考え方があるみたいで、
ウェブサイト毎にブログを管理できるから、
MT4でやっていたときみたいに、異なるサイトを1つのMTに乗っけていても
ブログが混在しなくてとても便利だと思ったけども。

今までMT4でグローバルテンプレートにおいていたものを、
ウェブサイトテンプレートに移し変えたら、MTIncludeタグだと
システムテンプレートを見にいってしまってうまくウェブサイトテンプレートを
読み込んでくれない。

MTIncludeのタグを書くと動き的には

1. ブログのテンプレートモジュールを呼び出す
2. ブログに該当するモジュールがない場合はシステムのテンプレートモジュールを呼び出す

ということらしい。
普通は、単位の小さいブログ→ウェブサイト→システム の順に
呼び出すと思うんですけど…

下のページの
【ParentalInclude】 というプラグインを使うと、
ブログ→ウェブサイト→システム のテンプレートの順番で見に行ってくれるように
なりもした。

http://www.skyarc.co.jp/engineerblog/entry/parentalinclude.html

読んだほん



映画もみたいかも

2010年6月23日水曜日

スケジュール引くときのまとめ

●工数と締め切りで考える
→工数がどれくらいかかるかと、締め切りがわかっていれば、そこから逆算
例えば、お客さん側の検収とかデータ投入に10日かかるとすれば、
実際の締め切りより10日前には開発環境にアップしておかないと、
データの投入ができなくなるからだめ

●関係性のあるものは線で結ぶ
→デザインや他の会社の作業があって、それが終わらないと進まないとか
そういう関連性がある場合には線で結ぶなどして、関連付けをしておく
 ⇒そうすることで、スケジュールを組む段階で「△△が遅れたら、
  その分だけスケジュールが後ろにずれます」と連絡が先にできる。

●詳細に落とす前に概要スケジュールを作る
→詳細にスケジュールを組もうとおもってもすぐにできないので、
おおざっぱな線でまずひいてみる。とか

またあとで編集

2010年6月21日月曜日

ふかづめ

痛い…

できたー MT5でカテゴリとカスタムフィールド検索を組み合わせる方法

これと
http://www.7dc.jp/matsutsune/2009/11/customfields.html

これだ!
http://tec.toi-planning.net/mt/customfieldssearch/

つかれた。。

ソース
<form method="get" action="<$mt:CGIPath$><$mt:SearchScript$>">
<!--カスタムフィールドサーチを有効にするかどうか-->
<input type="hidden" name="CustomFieldsSearch" value="1" />

<!--どのブログを検索対象にするか-->
<input type="hidden" name="IncludeBlogs" value="<$mt:BlogID$>" />

<!--カテゴリサーチを有効にするかどうか-->
<input type="hidden" name="CategorySearch" value="1" />
<input type="hidden" name="CategorySearchSets" value="1" />

<!--カテゴリ選択用プルダウン select nameが”1”なのがポイントっぽい-->
<select name="1">
<option value="0">--</option>
<MTTopLevelCategories>
<MTSubCatIsFirst>MTSubCatIsFirst><MTIfNonZero tag="MTCategoryCount">
<option value=""><$MTCategoryLabel$> [<$MTCategoryCount$>]</option>
MTIfNonZero><MTSubCatsRecurse><MTSubCatIsLast>MTSubCatIsLast>
MTTopLevelCategories>
select>
<fieldset id="freeword_set">
<br />
<!---->

<!--カスタムフィールドがチェックボックスのものを検索する場合
チェック有り無しは「なし:0、あり:1」で出力されるので-->
<!-- valueを -->
カスタムフィールドの値がチェックボックスのもので、チェックがついたエントリーをOR検索<br/>
<input type="checkbox" id="CustomFieldsSearchField_
entryninjin" name="CustomFieldsSearchFieldIn" value="entryninjin:1" />
<label for="CustomFieldsSearchField_entryninjin">: にんじん</label>
<input type="checkbox" id="CustomFieldsSearchFieldIn_
entrypiman" name="CustomFieldsSearchFieldIn" value="entrypiman:1" />
<label for="CustomFieldsSearchFieldIn_
entrypiman">: ピーマン</label>
<input type="checkbox" id="CustomFieldsSearchField_
entrysweetpotato" name="CustomFieldsSearchFieldIn" value="entrysweetpotato:1" />
<label for="CustomFieldsSearchField_
entrysweetpotato">: さつまいも</label>
fieldset>



<input type="submit" accesskey="4" value="検索" />
form>

2010年6月15日火曜日

struts2+文字コードでおきたバグ

【前提】
・struts2を使用
・入力された文字列と単位を出力する
・文字列が「 _ 」の場合は、単位を出力しない

以下のような形でデータ出力している。
 <s:property value="number"/>
 <s:if test="number!= '_'"><s:property value="unit"/></s:if>

【事象】
特定の文字列「95」を入力すると、単位表示がされない。
例)
33円
50円
62円
87円
95
100円

【原因】
struts2では、文字列が一文字の場合、シングルコーテーションで囲むと
char型で判断される。
http://mofuken.blogspot.com/2009/07/struts2-sifognl.html


 ←の判定式で、アンダースコアをシングルコーテーションで
囲んでいるため、
http://homepage2.nifty.com/miyuki-t/html/cardinalnum.html

ハイフンの文字コードが16進数だと5Fで、10進数であらわすと「95」
「95の値が入力されたとき「_」と同じと判断されて単位表示が
されなくなる。

char型
 Javaでは、文字を扱うための型として、charが用意されています。char型は、Unicodeの1文字分と同じく、16ビットで表現します。
 char型は、整数型の一種です。char型には0以上、65535以下の整数値が入ります。具体的には、整数値として、Unicode文字のコード番号を入れて使います。
 文字を扱う型と言っても、その実体は整数ですから、整数に関して実行可能な演算は、char型に関しても実行可能です。つまり、加減乗除、剰余、比較などが行えます。

文字リテラル
 char型の値を表すのには、文字リテラルが使用できます。文字リテラルは、1個の文字をシングル・クォート(')で囲んで表します。例えば、
'A'

は文字リテラルです。
引用元:http://www.itarchitect.jp/beginners/-/10422-2.html

【解決方法】
下のブログにあるようにダブルコーテーションで囲むと文字列として
解釈されるので、回避できる。

http://mofuken.blogspot.com/2009/07/struts2-sifognl.html

結果的にソースとしては↓みたいにしたら直った。
<s:property value="number"/>
<s:if test="number!= \"_\""><s:property value="unit"/></s:if>

2010年6月10日木曜日

ナレッジのため方

ナレッジのため方について考える。

【現状】
・ほしゅチームはある
・保守チームの中では、2~3人のグループで1プロジェクトを担当
・そのグループ内での知識の共有はできてるか
  ⇒そうでもない?いや、そうでもなくない
   ⇒グループ内ではできてるけど、保守チーム内ではできてない
・wikiはあるけど使ってない
  ⇒めんどくさい、アカウントないとみれない

【なぜ問題か】
障害おきる
 ⇒自分(A)の知識では対応できない
  ⇒対応できる人(B)に聞く
   ⇒Bと対応する
    ⇒直る サイトは動くようになる
     ⇒ありがとう
      ⇒終わり

AとBの間にしか知識の共有が行われない、それ以上他の人(C)に広がらない
 →Cが困ったときまたBに聞きにいく
  →Bの負担が増える、同じことまた教えないとだし

【なぜナレッジがあるといいか】
Bより知識はないが、Aが以前似た問題を対処したことがあり、それがメモとかなんでもいいけど残っている場合Bに直接行く前にAとCのみで対処できるかもしれない
  →Bの負担が減る

【なぜできないか】
・めんどくさい

【方法】
ブログを各自で作ってもらって、保守しててで起きた事例や、解決方法を書く
(保守以外のことも書いていいです)

【ブログを書く際の取り決め】
・記事を作成する場合で、保守の内容を書く場合は、ラベル付けを以下のように行う
※ラベルは何個でもつけられます
※クライアント名とか、特定できるような具体的な記述は避ける

●技術的問題
大項目:アプリ対応
  中項目:tomcat、apache、java、php、mt

●対応などの問題
大項目:コミュニケーション対応
  中項目:障害発生時、追加開発、見積もり

●ケーススタディ的な
大項目:ケーススタディ
  中項目:失敗事例、成功事例

【注意して欲しい点】
・書く習慣をつける
 ⇒フォーマットとかどうでもいいのでとにかく書く

とにかくためてみるしか。ためてから考える

find覚え書き

【ファイル探しつつコピーしたいとき】
find /usr/app/logs/ -name "*yyyy-mm-dd.log" | xargs cp -t /usr/app/logs/backup/
 ⇒-tオプションがポイントらしい

【ファイル探しつつ移動したいとき】
find /usr/app/logs/ -name "*yyyy-mm-dd.log" | xargs mv -t /usr/app/logs/backup/
 ⇒-tオプションがポイントらしい*2


http://openlab.dino.co.jp/2008/02/20/133431188.html

クロールされたくないページがクロールされる件

【事象】
検索結果で表示されたリンクをクリックするとエラーページにとんでしまう

【原因】
エラーページに飛んでしまうのは、クロールされた画面が、現在存在しない画面であったため。
表示がおかしいのは不明。。ぱんくず表示がちょうどおかしかったときにクロールされた?かも

【対処法】
①robots.txtをドメイン直下に置き、クロールされたくないページを書き込む
実際においてあるファイルの中身

 -----------------------------------------------
 User-agent: *
 Disallow: /***/***/***/←ファイルパス
 -----------------------------------------------

参考:http://dokodemo.rankuappu.com/syono5.html

②google webmasterツール から、削除手続きを行うのでもよい
http://www.google.com/support/webmasters/bin/answer.py?hl=jp&answer=164734

PDFのキャッシュが残る

【事象】
同じ名前でアップロードしたPDFファイルのキャッシュが残る

【原因】
pdfのファイルがtomcat側で処理されていたため、apache側のキャッシュ制御をしていたが、無効となっていたから。デフォルトキャッシュの有効期間は数時間があるのでpdf更新確認の前に(数時間以内)そのpdfを参照したことがあればそのキャッシュがブラウザ側に残され、しばらくサーバーへ最新バージョンを取りに行かなくなる。

【対処法】
httpd.conf に、以下の設定を追加
 pdfの拡張子のものにマッチした場合、ヘッダ情報を追加する。
 http://httpd.apache.org/docs/2.0/ja/mod/core.html

#pdf Cache-Control
Header set Pragma no-cache
Header set Cache-Control no-cache
Header set Expires "Thu, 01 Dec 1994 16:00:00 GMT"

jk.conf (mod_jkの場合)に、←の一行を追加
 JkUnMount で、特定のディレクトリ以下をTomcatの対象から外す
 http://www.emxas.co.jp/itblog/item_75.html
 http://www.kanata.to/java/tomcat_jkunmount.html
 
  JkUnMount /*.pdf ajp13←←←

追加後、apache再起動
/etc/init.d/httpd reload