2007/06/14

[技術系]   なんか動いてないっぽい>「まだ読んでない」

at 11:39JST
リンクに適用されたスタイルを取得してブラウザの閲覧履歴を盗み読む─という、まあぼくが個人的に思うには「セキュリティホール」が話題になったのは一年くらい前だっけ? なんかMOONGIFTの人が、それを応用したおもしろいツールを作っていた。

まだ読んでない
http://www.moongift.jp/list.html
読んでいないものだけ「まだ読んでない」
http://www.moongift.jp/2007/06/yet_read/

でも、なんかぼくのところのWindows XP SP2 + Internet Explorer 7ではちゃんと動いてないっぽい。だってリンク色が変わってるやつまでふつうに表示されてるもん。

「えっ。
 もしかしてIE7ではこのセキュリティホールへの対策が
 講じられているのですか?! さすがゲイツ様!」

と、Microsoft大好きっ娘のぼくは一瞬有頂天になった。…のだが、調べてみると別にそんなことはなかった。サンプルコードを書いてみた。

<html> 
<head>
<title>SpyJAX on IE7</title>
<style>
a {
color: #0000ee;
}
a:visited {
color: #800080;
}
</style>
<script>
function dothat () {
var d = document;
var items = [ 'Yahoo', 'NeverVisited' ];
for ( var i=0; i<items.length; i++ ) {
var eListItem = d.getElementById( 'Item' + items[i] );
var eLink = d.getElementById( 'Link' + items[i] );
var st =
eLink.currentStyle
|| document.defaultView.getComputedStyle( eLink, '' )
;
eListItem.innerHTML +=
( st.color == '#800080' || st.color == 'rgb(128, 0, 128)' )
? 'visited'
: 'never visited :: ' + st.color
;
}
}
</script>
</head>
<body
onload="
dothat();
"
>
<h1>SpyJAX on IE7</h1>
<ul>
<li
id="ItemYahoo"
>
<a
id="LinkYahoo"
href="http://www.yahoo.co.jp/"
>http://www.yahoo.co.jp/</a>
</li>
<li
id="ItemNeverVisited"
>
<a
id="LinkNeverVisited"
href="http://www.never-exists-such-a-site.com/"
>http://www.never-exists-such-a-site.com/</a>
</li>
</ul>
</body>
</html>


Yahoo!にアクセスしてから表示すると、ちゃんとIE7(奥)でもFirefox2(手前)でも動作する。

20070614mage1.png


よく観てみると、MOONGIFTのほうでa:visitedのカラーが
#800080
ということを前提にしていた。わたしのとこのIE7は#810081です!
2007061402mage1.png

ね。

あれー。なんでだべ>#810081なの
別に、IEの設定もいじってないのだが…。
2007061403mage1.png


で、別のマシンのIE6で調べてみると、こちらはa:visitedは
#800080
である。

あー…なんかしらないけど、IE6→IE7でデフォルトが変更になったのか。

たぶん、ゲイツ様のことなので、このプライバシー侵害バグのことを憂いて「カラー設定を変えて読み取れなくする」という先手を打たれていらしたに違いない。ジョブスとかいうハゲとはレベルが違うのだよ!

単純な問題だったのに遠回りしてしまったおばか>ぼく

…どちらにしてもユーザーサイドで設定を変更している可能性があるので、こういうときはサンプルコードのようにa:visitedのスタイルをきちんと指定しておいたほうがよいと思われますです>MOONGIFTさま

2007/06/12

[技術系]   日本語を表示させる方法>Windows用Safariβ版

at 22:54JST
こんにちは。
カラー画面のMacなんてMacとは認めない、アンチMacユーザーです。

Apple - Safari 3 Public Beta - Download
http://www.apple.com/safari/download/

Appleが「Safari 3」英語版ベータを公開、初のWindows版も
http://internet.watch.impress.co.jp/cda/news/2007/06/12/16010.html

米Apple、Windows版Safariをβ公開
http://www.itmedia.co.jp/news/articles/0706/12/news013.html

ということで、邪悪なApple社がお節介にもWindows向けにSafariを出してきたわけですが、当然のように
・ぜんぜんWindows UIにのっとってません
 (つかいづれー。おまえらはこれが便利だと思っているのか)
・日本語の表示ができません
なのです。さすがApple。ゲイツ様の爪の垢でも煎じて飲ませたい。反日メーカー。特定アップル(ここらへんでクレームが来る)。

ただ、

Windows版SafariでmixiやYahoo!を表示してみると……
http://www.itmedia.co.jp/news/articles/0706/12/news101.html

ということで後者はどうにかなるようなので、なんか威張ってるITMediaをチェックしてみた。要は以下のようなことですね:

<html> 
<head>
<title>アンチMacユーザーが使うSafari</title>
<style>
body {
font-family:
"MS Pゴシック",
"ヒラギノ角ゴ Pro W3",
sans-serif
;
}
</style>
<script>
if (
navigator.userAgent.match( 'Safari' )
&& navigator.platform.match( 'Win32' )
) {
var sheets = document.styleSheets;
var tSheet = sheets[sheets.length-1];
tSheet.insertRule(
'body { font-family: "MS UI Gothic"; } ',
tSheet.cssRules.length
);
}
</script>
</head>
<body>
ホント、Macは地獄だぜ〜!<br />
フゥーハハハハー!
</body>
</html>


スタイルシートでフォントに
MS UI Gothic
のような
「英字のみの名称をもったものを指定してやる」
ということのようで。

しかし、MS PGothicはダメのようで、かといって全プラットフォームでMS UIゴシックに切り替えるわけにもいかないから、JavaScriptでプラットフォーム判別してルールを追加してやるのがよさそう。

そこまでしてSafariに対応してやる意味などないぜ! と、ひたすらジョブスにケンカを売りたいぼくだった。あの頭の尖ったところがキライだ!

ま、そのうちさすがに正式日本語対応するだろうから、それまで放っておいたほうが無難だけど。

2007/06/11

[技術系]   VistaのアドレスバーをXPに輸入するツール

at 14:55JST
ぼくは
「WindowsのUIは95がいちばん優れていた説」
(ただしスタートメニューはXPがよい)
を採る頑固な保守派で、いまだにエクスプローラは
「クラシックスタイル+いちいちウィンドウが開く派」
なんだけど。

それでもVistaには、MacにすらないすばらしいUIのアイデアが詰まっていることはそこかしこで認めざるを得ない。ひとつは
・リストビューの左端に、マウスだけで複数選択できる
 チェックボックスをつけた
ということ。もうひとつが、実はこの
「パンくずリスト形式のアドレスバー」
だ。

それを思いっきりXPで実現してくれるフリーソフト。

窓の杜 - 【NEWS】Vistaで改良されたエクスプローラのアドレスバーをXPで再現「QT Address Bar」
http://www.forest.impress.co.jp/article/2007/06/11/qtaddressbar.html
とりあえずのページ
http://members.at.infoseek.co.jp/Quizo/freeware/#qtadr

これはいいよー。速攻で入れた。再起動を要求されるのがタマに傷だけど…。

こんなふうになる。
2007061101mage1.png

で、任意の足跡上で同レベルオブジェクトをリストアップ、そこにワンクリックでアクセスできる。
2007061102mage1.png

初回エクスプローラ起動時にちょっと時間がかかる。まあ、許容範囲かな。入れっぱなしにしておくとときどき役に立つと思う。

[技術系]   光は止まらないんだよ!

at 12:10JST
「ひかり電話」はまだまだ止まる - ビジネススタイル - nikkei BPnet
http://www.nikkeibp.co.jp/style/biz/feature/news/070608_hikari/

「光が止まったら相対性理論の根本が崩れてしまう!」
とアインシュタインがお嘆きになるではないか…というのはともかく、けっこう扇情的なタイトルで、NTT批判なんだろうなあと思って読んでたら180度違う結論でびっくり。

「ひかり電話」はまだまだ止まる - ビジネススタイル - nikkei BPnet
http://www.nikkeibp.co.jp/style/biz/feature/news/070608_hikari/index2.html
NTTの都合で新しい技術へ切り替え、その揚げ句故障が頻発するとはけしからん、と立腹する向きも多いだろう。しかし、新技術というものには常に、プラス面とマイナス面がある。固定電話のように80年はかからないだろうが、ひかり電話はこれからも故障する。故障が起きた時、利用者は我慢するしかない。「絶対に電話を止めるな」と主張した場合、その主張通りにするには、固定電話へ逆戻りするしかない。NTTを再び国営化し、固定電話を死守させてもよいが、そのコストは税金で賄うことになる。

NTTとしては、IPネットワークを安全に運用するノウハウを蓄積していくしかない。そのために必要なのは、IPネットワークの設計・敷設・運用・トラブル対策といった一連の作業をすべてNTTグループ内部の人材でやっていくことだ。本業を自力で支えられないのならNTTの存在価値はない。


「我慢するしかない」という、誰もが言いたくて言えないことを言ってしまっているのがスゴイ。新自由主義的発想、と警戒するのは容易だが、たぶん意図しているものはそうじゃあないだろう。故障することもある、ということを前提として利用者がもっと理解を深めて関与していくべきだ…という意見にはぼくは賛成。利用者側としては、
「サービスをもっとシンプルにすることで、故障しにくく、
 使いやすくせよ」
と要求することもできるわけで。政治の世界のネオリベとは論理が違う。この考え方は合ってる。

このメディアの論調としては、力点は後段にあるしね。

2007/06/09

[技術系]   IEってデスクトップより大きいウィンドウでセンタリングしてくれないのね

at 23:53JST
なんとも言いかねるのだが。Internet Explorer 7での話。きょう昼間作業してて気づいた。

・XGA(1024×768ドット)ディスプレイ環境で
・擬似的にXGAオーバーの表示環境を再現しようと
・bodyにwidth: 2000pxなどと指定して
・中にwidth: 1024pxのボックスを置いてセンタリング指定しても
・body { width: 1024px; }くらいの中で表示されてしまう

bodyにwidth: 2000pxなどしなくても、IE7の拡大・縮小表示を使ってやるとわかるんじゃないかと。

ミニマルモデルで言うと、
<html> 
<body
style="
text-align: center;
width: 2024px;
"
>
<div
id="Content"
style="
margin-left: auto;
margin-right: auto;
text-align: left;
width: 1024px;
border: 1px solid #ff0000;
"
>
幅1024pxのボックス
</div>
</body>
</html>

てな感じで、IE7とFirefox 2でXGA環境における表示を比べてみると…(XGA環境での必要なクライアント領域だけのキャプチャ)

IE7はこう。
20070609iemage1.png


Firefox 2はこう。
20070609ffmage1.png


うーむ。敬愛するIE様なのに…。
なにかが間違っている可能性もあるけれど。こりはめんどくさい。ちなみに標準準拠モードとかは興味ないのでチェックしてません。

2007/06/07

[技術系]   ぼくはココロが狭いので

at 09:42JST
サーバが過負荷になった原因がわかった。
とあるサイトで利用されていたためだった。

それだけならもちろんうれしいことなのだが…思いっきり規約違反して使っていた-_-#

サイトの性質からみて、(過負荷を引き起こした)ページビューの多さの一定割合もアクセスランキングサイトでの露出増をねらった“水増し工作”の賜物だと思われるし。こっちに一利もないので速攻で対策した。

とりあえずad hocな対策だけど。もともとやろうと思っていたのでJavaScriptでもう少しまともな手法を実装する予定。

さすが猫の額ほどのココロの狭さを誇るひろ式先生だと思った。

2007/06/05

[技術系]   ホームページエディタ:「KompoZer」がけっこう使える件

at 08:18JST
いわゆるホームページエディタは、こと「無料」のものについて言えば

a・HTMLの細かいことを知りたくない“アマ”の人が気楽に使える
b・デザインをやる“プロ”の人の作業を妨害しない

という二点を兼ね備えたソフトがなかなか見あたらない。有料ならDreamweaverがあるが、もはやPhotoshop並みに高価になってしまったのでキツいし。

さらに、bの条件を大目に見ても

1・サーバへのアップロードまで一貫して面倒見てくれる
2・スタイルシートを読める
3・日本語化されている
4・あまりバグがない

というものになると、もはや本当に存在しない…ような気がしていた。

しかし、かつての「Netscape Composer」の流れを再度追っかけてみたら
「KompoZer」(コンポーザー)
という一族が、意外に使えるレベルに仕上がっているのがわかった。

Netscape Composer→Mozilla Suite→Nvu
系の子孫だが、バグバグで放置されているNvuにパッチを当てたものらしい。おまけに日本語ローカライズのリソースがちゃんとある!…アンオフィシャルなものだからNvuと状況大して変わらないって? ま、そのとおりなんだけどね。一年前までメンテされてたっつーのは、少しだけうれしいじゃん。

こんな画面。
20070605kompozermage1.png


画面右側がホームページを編集しているようす。もちろんワープロライクに制作できる。中身はFirefoxと同じだから、実際にブラウザで見たときと表示は変わらない(IEは別として…WYSIWYGに編集していてIEでおかしくなることはたぶんない)。

左側には「サイトマネージャ」があって、借りているサーバのハードディスクの中身を一望できる。それで、ここで編集したいHTMLファイルを選択すれば、そのまま右側でいじれるというわけ。

“プロ”の視点からすると、
>2・スタイルシートを読める
のが大きい。編集中でもスタイルが反映されたままだから。うまくコーディングすれば、
「デザインをキチキチに作り込んでも、
 文字の修正などはクライアントが自分で気楽にできる」
という作業分担が可能だ。

“マジでプロ”な人からすると、ややHTMLソースの改行をいじるキライがあるため、
>b・デザイン作業をやる“プロ”の人の作業を妨害しない
という部分で少し疑問符がつくけれど。まあ、このあたりはなんとかなるものだよ。
(そもそもホワイトスペース互換を気にするのはデザイナーじゃなくてコーダーですね)

なんといっても無料だし。
これなら、ぼくの
「他人のホームページ、勝手にタダで作るよキャンペーン」
に使えるわ。

ドロップシッピング使ってアイテムつくるのとかはやってもらわないと困るが。
http://www.misetsuku.jp/


とはいえふつうの人がインストール作業するのはあまりおすすめしないKompoZerのサイトは以下:

KompoZer - Nvu's unofficial bug-fix release
http://kompozer.net/

右端に「ja-JP」として日本語ランゲージパックがある。SourceForgeの問題か拡張子zipとしてダウンロードされてしまうのでxpiに直し、本体を起動後に
「ツール」→「機能拡張」
から参照してインストールする。

2007/06/04

[技術系]   唯一のIrSimple対応アダプタ

at 19:23JST
PCにつなげてIrSimple対応にするコンシューマ向けアダプタがやっと出るらしい。

IrSimple対応のUSBアダプタ
http://k-tai.impress.co.jp/cda/article/news_toppage/34825.html

VFIR準拠のIrSimple USBアダプター
http://www.cfcompany.co.jp/product/Actisys/irss4020.html

「ケータイの写真をすばやくPCに転送したい!」
と、前に調べたときには実はひとつも製品が存在しなかったのだ。

910SHのHSIr≒IrSimple : ひろ式めもちょう
http://memo.hirosiki.jp/article/28508074.html

型番をよく見ると、今まで開発者向けキットの頒布しかしてなかったのをちゃんと一般向けドライバの添付に変えただけの商品らしいけれど。それでも人類にとっては大きな一歩だ!(そうか?)

なんせ16Mbpsなので古いイーサネットより速いくらいだし。ケータイでバリバリ写真を撮りまくっている人には要検討な製品と言えるんじゃないだろうか。

…今どき1万円も払ってIrアダプタ買うのもどうかと思うけどね。microSDがあんなに小さくなきゃよかったんだよ。

2007/06/02

[技術系]   寝不足とはいえ…

at 08:00JST
このサンプル画像はひどすぎる。
20070602mage1.png

2007/05/30

[技術系]   無料のウイルス対策ソフト「avast!」

at 00:36JST
有名な無料アンチウイルスソフト「avast!」をインストールしてみた。

解説ページを作っている人がそこらじゅうにいるけれど、とりあえず以下でもどうぞ:
http://avast.tte-navi.info/

意外に動作が軽くてびっくり。FSB100MHz+メモリ384MのWindows 2000(およそ7年前のスペックということ)でも、そんなに負荷がかからない。ネット端末がわりに使うマシンなら、これでいいんじゃないのかなあ。

a・はじめてインストールするとき、ユーザー登録が必要
b・14ヶ月後、再登録しなくてはいけない
というのがややネック。特にbのように
「忘れたころに突然やってくる」
タイプのイベントは、パソコンのメンテナンスが仕事ではないふつうの人にとってはさっぱりわからない鬼門的な作業だったりするので。でも、これ以上を無料で望むのはバチあたりだろう。

・ちゃんとリアルタイムスキャンしてくれる
・ウイルスデータベースの更新が短時間で終わる
・administratorで設定した内容がほかのアカウントでもそのまま有効になる(あたりまえ?)
とかが気に入った。

こんなこと言ってても自分のマシンにアンチウイルスソフトなんて一回も入れたことないんだけどね…。

2007/05/28

[技術系]   国研のコーパス

at 17:24JST
http://memo.hirosiki.jp/article/36181502.html
で書いてた件。デモ公開された。

国立国語研究所、1,000万語分の日本語コーパスを試験公開
http://internet.watch.impress.co.jp/cda/news/2007/05/28/15852.html

ま、この状態じゃ、ほぼ使い道ないが。無償で一定規模のものを公開してくれたら、日本語学・言語学・自然言語処理の土台を押し上げると思うのにね。たぶんない。

2007/05/27

[技術系]   LANカードが足りない

at 22:09JST
このあいだの786k5
http://memo.hirosiki.jp/article/40772953.html
を結局捨てきれず(だってCPUとメモリも揃ってるんだぜ)、ゴミとして捨てる候補だったPCケースに組み込んでWindows 2000を入れてみた。

ハードディスクも余り物の2.5インチ20GB転用、DVD未対応のCD-Rドライブ、メモリ384MBだけど、意外にすんなり動きそうだ。

問題は、外付けのLANカードが余ってないことだ。玄人志向で3年くらい前に買った980円のGigabitイーサがあったようなつもりだったのに、よく考えたらクラッシュして捨てたんだった。しかたない。あした朝イチで買ってこよう。

VGAとサウンドの一部を認識してないけど、たぶんWindows Updateでドライバが追加されるのではないか。

[技術系]   ホムペロリ

at 15:32JST
個人的にはキライじゃないが、このネーミングセンスはどうにかならんのか…というロリポップの簡易ホームページ作成ツール。

ホムペロリ
http://perori.lolipop.jp/

ローエンドユーザー向けにレンタルサーバ業者がよく提供している、簡易ツールの同類だ。ただ、ちょっとほかと異なるのは、

・更新も画面上からある程度できるようになっている
・生成されるファイルにPHPによる動的スクリプトファイルが含まれる

点だ。だから、どちらかというと静的コンテンツ制作よりも
「(ロリポップにとって)開発コストの低廉な
 簡易CMS」
という感じかなあと思った。

あと、
「いったん、
 ホムペロリ専用のディスクスペース上でホームページをつくり、
 “できた!”と確認してから
 本番のサーバ(契約しているサーバ)に転送する」
というしくみなのも、あまり他に例がないような気がする。高機能だからかな。知識のない人だと
「え? 転送ってFTPのこと??」
と混乱しそう。図にするとこうなる。

20070527hpmage1.png


用意されているテンプレートのデザインはそれなりにクールだ。

例。
20070527hp1mage6.png


ホームページを作る際には、まずホムペロリのページにアクセスしてログインする。

用意されているテンプレートから、好みのひながたを選んで…。
20070527hp2mage6.png


「カスタマイズ」で、順を追って必要な部分を修正していく。

20070527hp3mage6.png


ホームページのタイトルなどの変更はもちろんだが、
「画像ギャラリー」
「日記」
「リンク集」
などの項目を自由に付加・削除し、それぞれの項目ごとにカスタマイズや順序の変更ができる。このあたりは、むしろGUIベースのレンタルblogサービスに近い考え方だろう。

ただ、わかりやすいかというと一概にそうも言えなくて、たとえば「トップページ」の修正をしようと、
20070527hp4mage6.png

「TOP」を選んでやると、いきなりHTMLの理解を要求される。
20070527hp5mage6.png


…ロリポップだと、過去に見てきた範囲ではHTMLのHも聞いたことがない人が使うケースが多いので、これはやや不親切かと^^;

といっても、単に更新ニュースを書き込むだけなら
20070527hp6mage6.png

というふうにするだけで、そんなにHTMLの知識が必要なわけじゃないんだけどね。とはいえ、タグの対応とかも知らなければ触るのは怖いわなあ…。

で、修正が終わったら「転送」で本番サーバにコピーして終了。

このとき、サーバ上の任意のフォルダ内にコピーするという使い方もできる。…ぜんぶ相対パスで動作するようにちゃんとなってるのかなあ。なんとなく、ディレクトリ単位で別のサブドメインホストを作成するために用意されているだけという気がする。

あと、これだと全体のデザインを変更することはもちろんできない。基本は用意されているひな形の範囲内で、ということになる。その条件をのめばそれなりに使えるツールではありそうだ。

[技術系]   ロリポップでのサーバーレンタルとアカウント情報

at 15:11JST
動作確認でロリポップのチェックをするためにちょこっとサーバーを借りたので、メモ。

http://www.lolipop.jp/

ちなみにロリポップは
「10日お試し無料」
で、オンラインで申し込みをして10日以内に振り込みをしなければそのまま一銭も払わずに契約を終了することができる。手元に余ったドメインがあれば、まったくお金を使わずに遊べる。…遊ぶためのものじゃありませんけど。たしかぼく、これ使うの二回目だ。

ステップ
・ドメインのWhois情報へのロリポップネームサーバ指定
 ↓JPRSの場合、20分でレジストリに反映される
・ロリポップでドメインを指定して契約
 ↓30分でロリポップのネームサーバに情報反映
・指定ドメインでの利用が可能に

※手順の途中で指定ドメインへブラウザなどでアクセスしようとすると、リゾルバにキャッシュが残って面倒なことになるので注意

で、メールで届くセットアップ情報は以下のとおり。こういうの業者によって用語がまちまちだから、他人にサーバの設定を指示するときに情報のサンプルがあると助かるんだよね。ということで、ここに書いておくとロリポップユーザーに泣きつかれた誰かがgoogle経由で飛んできて、
「ああ、こういうふうになってるのね」
とぼくに感謝して、アフィリエイト経由で外車を買ってくれるに違いない。うんうん。もちろんダミーにしておきます。

■以下の内容でセットアップ致しました。
【  アカウントID  】 AA00000000
【   独自ドメイン   】 http://****.jp ( http://www.****.jp )
【   サブドメイン   】 http://aa00000000.lolipop.jp
【  メールアドレス  】 aa00000000@dj.lolipop.jp

【   FTPホスト   】 ftp000.lolipop.jp
【  FTPユーザー  】 lolipop.jp-aa00000000
【  FTPパスワード  】 0aa0aa

【 POP(受信)サーバー 】 mail000.lolipop.jp
【IMAP(受信)サーバー】 mail000.lolipop.jp
【SMTP(送信)サーバー】 mail000.lolipop.jp
【  メールユーザー  】 lolipop.jp-aa00000000
【  メールパスワード  】 0aa0aa

【 Perlパス 】 /usr/bin/perl
【Sendmailパス】 /usr/sbin/sendmail
【 Rubyパス 】 /usr/local/bin/ruby


独自ドメイン契約の場合もサブドメインが割り当てられるのは、共有レンタルサーバではよくあるケース。

ちょっと変わってるのは、バーチャルホストユーザーの名前が
「本来ホスト名-ユニーク」
になってるところか。たぶん「@」が入ると蹴るソフトがあるのを嫌ったのだろう。あと、誰も使わなさそうだがIMAPに対応してるとは。知らなかった。

2007/05/26

[技術系]   MT: MTCategories中で最初と最後の要素向けの出力を可能にするMTCategoriesHeader|Footerパッチ

at 01:16JST
なんか最近、MovableTypeの話ばっかだな。カテゴリ作ったほうがいいのかしらん。なぜSeesaaブログユーザーがこんなに…。

http://memo.hirosiki.jp/article/42897393.html
MTCategoriesじゃ
「最初と最後の要素だけ出力を変える」
ことができないので


とりあえず、こっちのほうがネックなのでMT本体にパッチを当ててみることにした。意外に簡単。機能は未整理だけど、こういうのをサラッとできるのは元ソースがそこそこキレイだからなんだろうなあ…。

同じようなことで悩んでる人はほかにもいるから、ニーズはあるようだ。

小粋空間: カテゴリーリストで MTArchiveListHeader と MTArchiveListFooter が正常に動作しない問題
http://www.koikikukan.com/archives/2006/08/23-003402.php

ArchiveListHeaderはArchiveList内でしか動作しないので正常に動作しないのはしかたないね。問題はCategoriesでそれに相当するタグが用意されていないということ。

ということでパッチを置いておく。

ContextHandlers.pm.patch
MT 3.34-ja向け。

lib/MT/Template/ContextHandlers.pmにこれを当てると「MTCategories」タグ内で、
・MTCategoriesHeader
・MTCategoriesFooter
を使えるようになる。

<ul> 
<MTCategories>
<li>
<MTCategoriesHeader>

</MTCategoriesHeader>
<MTCategoriesFooter>

</MTCategoriesFooter>
<$MTCategoryDescription encode_html="1"$>
</MTCategories>
</ul>

こういうことですな。

ただし、MTFilterCategoriesプラグインでexcludeしてるとMTCategoriesFooterはまともに動きません(笑)。しょうがないね。そこらへんはちょっと運用でカバーしてくだせえ。つーか、パッチあてるなら MTCategories にexcludeオプションをつければいいのかな。

こういうのってSix Apartにフィードバックできないのかねえ。窓口がどこにあんのかわかんないから放置。

2007/05/25

[技術系]   MT : なんでMTTopLevelCategoriesの中ではstashの情報がちゃんと取れないんだろう

at 21:34JST
MT : カテゴリ一覧で現在カテゴリの表示を変えるMTIfCategoryちょいパッチ : ひろ式めもちょう
http://memo.hirosiki.jp/article/42866022.html

うーん。
MTCategoriesじゃ
「最初と最後の要素だけ出力を変える」
ことができないので、やっぱり
MTTopLevelCategories
を使いたいわけだが。

それでもういちどifcategory.plを見直してみる。
MT::Template::Context->add_tag( TestCategory => 
sub {
my $ctx = shift;
my $thisCategory = $ctx->stash( 'category' )
or return $ctx->error(MT->translate(
'inproper context MTIfCurrentCategory'
));
my $pageCategory;
if ( defined $ctx->stash( 'entry' ) ) {
$pageCategory = $ctx->stash( 'entry' )->category;
} elsif ( defined $ctx->stash( 'archive_category' ) ) {
$pageCategory = $ctx->stash( 'archive_category' );
}
my $pageCategoryLabel =
( defined $pageCategory ) ?
$pageCategory->label :
''
;
$thisCategory->label . ':' . $pageCategoryLabel;
}
);

として、
[ 
<MTTopLevelCategories>
- <$MTTestCategory$>
</MTTopLevelCategories>
]

なんていうテンプレートを再構築してやると、やっぱりMTTopLevelCategoriesでは
「archive_category、entryのstashが取れない」
のがわかった。

んー-"- なんでよ。

プラグインもいろいろ調べるのが面倒だからテヌキしていじってんのに、スクリプト本体見ろってか。

[技術系]   MT : カテゴリ一覧で現在カテゴリの表示を変えるMTIfCategoryちょいパッチ

at 15:44JST
blogが普及してから、ナビゲーションバーやカテゴリ一覧で
「現在見ているページが該当するカテゴリのリンクを無効にしない」
テヌキが一般的になってしまったわけだが。

#カテゴリ内がさらに階層化されている場合を除くと(←重要)
#選択する意味のないリンクが生きているのはUI上ヤバイ
#…まあそれはともかく見た目だけは変えたい

MovableTypeのカテゴリ一覧生成タグには標準で現在カテゴリの出力を変える機能がついていない。そこでMTIfCategoryプラグインを使うわけだが、

カテゴリ IF 命令プラグイン - MTIfCategory :: Drk7jp
http://www.drk7.jp/MT/archives/000829.html

<MTTopLevelCategories> 
<MTSubCatIsFirst>
<ul
class="module-list"
id="Navigation"
>
</MTSubCatIsFirst>
<MTFilterCategories exclude="999parts">
<li
class="module-list-item"
>
<MTIfCat_eq_Arc>→arc<br /></MTIfCat_eq_Arc>
<MTIfCat_eq_Ent>→ent<br /></MTIfCat_eq_Ent>

とかやると、

エントリーページ→○表示変わる
カテゴリアーカイブ→×表示変わらない

だ。 ???

MovableType備忘録: MTIfCategoryプラグイン
http://bizcaz.com/archives/2007/04/30-035752.php

を読んでて気づいた。

<ul 
class="module-list"
id="Navigation"
>
<MTCategories>
<MTFilterCategories exclude="999parts">
<li
class="module-list-item"
>
<MTIfCat_eq_Arc>→arc<br /></MTIfCat_eq_Arc>
<MTIfCat_eq_Ent>→ent<br /></MTIfCat_eq_Ent>


だとどちらのタイプのアーカイブでも動く。古いからMTTopLevelCategoriesに対応していないようだ。MTの返すstashが違うんだろうな…。

よく考えると、そもそもサブカテゴリーを使うことがないので後者に書き換えて使うことにする。

しかし、なんとなく腹の虫がおさまらない。
MTIfCat_eq_Arc
MTIfCat_eq_Ent
と2つ書くのがなんかイヤだ。たぶん、コンテキストによって片方しか取得できないことを想定して分けているのだろうけれど…。

パッチを書いた。
*** plugins/IfCategory.pl.org	Fri May 25 13:53:20 2007 
--- plugins/IfCategory.pl Fri May 25 15:27:34 2007
***************
*** 1,4 ****
--- 1,5 ----
# IfCategory.pl -- category type conditional plugin by drk
+ # 2007/05/25 modified by hirosiki

package MT::plugins::IfCategory;
use MT::Template::Context;
***************
*** 8,13 ****
--- 9,29 ----
MT::Template::Context->add_conditional_tag(IfCat_eq_Ent => \&ifcat_eq_ent);
MT::Template::Context->add_conditional_tag(IfNotCat_eq_Ent => sub{!ifcat_eq_ent(@_)});

+ MT::Template::Context->add_conditional_tag(IfCurrentCategory => \&ifcurrentcategory);
+ MT::Template::Context->add_conditional_tag(IfNotCurrentCategory => sub{!ifcurrentcategory(@_)});
+
+ sub ifcurrentcategory {
+ my $cat = $_[0]->stash('category')
+ or return $_[0]->error(MT->translate(
+ "You used an [_1] tag outside of the proper context.",
+ '<$MTCategoryLabel$>' ));
+ my $catlabel_this = _hdlr_category_label(@_);
+ my $catlabel_arc = _hdlr_archive_category(@_);
+ my $catlabel_ent = _hdlr_entry_category(@_);
+
+ ( $catlabel_arc eq $catlabel_this ) || ( $catlabel_ent eq $catlabel_this );
+ }
+

sub ifcat_eq_arc {
my $cat = $_[0]->stash('category')


IfCategory.pl.patch

こうすると、
<MTCategories> 
<MTIfCurrentCategory>→<br /></MTIfCurrentCategory>
で動作する。

万一の際にエラーが起きないようにチェックする処理を入れるべきなのだが、なんかこれで動くので放置…。

[技術系]   MT : 特定のカテゴリをカテゴリリストから除くにはMTIfCategoryじゃダメなのね

at 14:32JST
他人の足跡を臭いかぎながら追っている犬のようだが。

MovableTypeのエントリカテゴリに
「部品とかいれておこーっと」
というカテゴリを作って。もちろん、そのカテゴリをふつうの一覧からは参照できるようにしたくない場合。

<MTTopLevelCategories> 
<MTIfCategory name="999parts">
<MTElse>
<li
class="module-list-item"
>
<a
href="<$MTCategoryArchiveLink$>"
title="<$MTCategoryDescription$>"
class="navigationOptions"
id="Navigation-<$MTCategoryLabel$>"
><span
class="altTexts"
><$MTCategoryDescription encode_html="1"$></span></a>
<MTSubCatsRecurse>
</li>
</MTElse>
</MTIfCategory>
</MTTopLevelCategories>


標準でもこれでできるんじゃね? と思うとダメ。

・トップページ→期待通り動作
・カテゴリアーカイブ→期待通り動作
・個別エントリページ→×

…他人の作ったものはこういうことがあるからキライなんだ←言いがかり

で、結局FilterCategoriesプラグインを使うのね。
http://www.staggernation.com/mtplugins/FilterCategories/

標準で搭載しておこうよ…。

追記:
もしかしたらMTCategoriesの中だったら、最初の書き方で動くのかもしんね。

[技術系]   margin-left: -10000emとかのかわり

at 04:41JST
最近動向を見ていないので、世の「XHTML, CSS原理主義者(=W3C原理主義者)」がどんなくだらないテーゼを打ち出しているのか知らないのだけれど。

例の
「テキストを消すためにmargin-left: -10000emってするんだよ!
 プギャー!」Hack(笑、とあえてつける)
って、あんなことしなくてもこれでいいんじゃないかと思うのだが、何がいけないんだろう。

20070525cssmage3.png


ちゃんとツールチップも出るしなあ…。
まあ、それでもぼくは
「はじめっから画像を読み込むようにHTML書けばええやん」派
なのだが。

オレオレHTML規格準拠によるコーディング:
<style> 
#navigation li {
list-style: none;
}
#navigation .altTexts {
display: none;
}
a.naviSelections {
display: block;
width: 64px;
height: 64px;
border: 2px solid #ccccff;
}
a:hover.naviSelections {
border: 2px solid #666666;
}
a#naviToppage {
background: url( http://images-jp.amazon.com/images/P/B000QEVTSW.09.MZZZZZZZ.jpg );
}
a#naviNews {
background: url( http://images-jp.amazon.com/images/P/B000NUPCAA.09.MZZZZZZZ.jpg );
}
</style>
<p>
<a
href="/"
>test</a>
</p>

<ul
id="navigation"
>
<li>
<a
href="http://www.amazon.co.jp/exec/obidos/ASIN/B000QEVTSW/hirosiki-22"
class="naviSelections"
id="naviToppage"
title="トップページ"
>
<span
class="altTexts"
>トップページ</span>
</a>
</li>

<li>
<a
href="http://www.amazon.co.jp/exec/obidos/ASIN/B000NUPCAA/hirosiki-22"
class="naviSelections"
id="naviNews"
title="おしらせ"
>
<span
class="altTexts"
>おしらせ</span>
</a>
</li>
</ul>





画像は適切なのがなかったのでAmazonから借りました。セレクトに他意はありません。Fateってなに?

※追記
display: none;
だとFirefoxが該当ブロックをまるごと消してしまうので、
visibility: hidden;
か。

2007/05/23

[技術系]   MTにTinyMCEforMTベースのWYSIWYGエディタを付ける

at 06:20JST
http://memo.hirosiki.jp/article/42608618.html
でも書いたように

TinyMCE for Movable Type Ver1.30 Ja
http://www.dakiny.com/tinymce/archives/2007/05/tinymce_plugin_for_movable_typ_5.html

を使ってMovableTypeにWYSIWYGエディタを付けてみた。このディストリビューションはよくできていると思うが、それでもワガママなぼくには気に入らないところがあったので、いろいろと直してみた。先の不具合の件もそうだけど。

といっても、だいたいはもともとTinyMCEの機能なんだけどね。

・Shift_JIS動作時の不具合修正
・TinyMCEの機能をダイエット
・ボタン並びをWordっぽく
・TinyMCE呼び出しボタンが「WYSIWYG」じゃなんだかわかんないので
 「ワープロモード」「シンプルモード」というボタンになおした。
 このダサさが大事だ!
・Enterキーを押したとき、p(paragraph)の挿入ではなく
 強制改行するようにした
・シンプルモード→ワープロモード移行時、
 元の改行を br に変換するようにしてある
・シンプルモード←→ワープロモードを行き来しても
 改行が無限に増えないようにしてある
 (ソースフォーマットfalse)

素人の人が扱うことを前提に振った。

最終的に見た目はこんな感じ。
2007052311mage1.png


インストール手順まとめ:
% wget http://iij.dl.sourceforge.jp/tinymce-for-mt/25430/TinyMCEforMT_JA130.zip 
(堂々と日本語ファイル名のファイルが入っているので、
 tarボールじゃないほうがいいかもしんない)
% unzip it
% mv mt-static/* ${MT_ROOT}/mt-static/
% mv plugins/* ${MT_ROOT}/plugins/
% mv php/plugins/* ${MT_ROOT}/php/plugins/

ここまでふつうのTinyMCEforMTと同じ。

tinymcemt-coolswitch.tgz
をダウンロードして展開。中身を
mt-static/TinyMCEforMT/images/
にコピー。

TinyMCEforMT.pl.patch
をダウンロード。
plugins/TinyMCEforMT/TinyMCEforMT.pl
にパッチを当てる。

けっこういい感じになってきた。
しかし、まだまだ自分で使うには機能不足って感じがする…MT…。もっと解析して機能向上させたクローンを作りたいな。
さらに過去の記事
2009/04 (1)   2008/12 (3)   2008/11 (9)   2008/10 (10)   2008/09 (20)   2008/08 (2)   2008/07 (23)   2008/06 (16)   2008/05 (22)   2008/04 (11)   2008/03 (21)   2008/02 (20)   2008/01 (21)   2007/12 (32)   2007/11 (37)   2007/10 (46)   2007/09 (63)   2007/08 (33)   2007/07 (41)   2007/06 (81)   2007/05 (173)   2007/04 (168)   2007/03 (113)   2007/02 (123)   2007/01 (92)   2006/12 (111)   2006/11 (185)   2006/10 (20)  

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。