KUMA TYPE

猫、パソコン、プログラム、映画、ドラマ、アニメ、perl、etc.

フォーマット:「なし」で記事を書いても追記部分の改行が<br />に変換される。

Movable Type 4.2 Pro+SQLite3+PHP5.2.6 ダイナミック・パブリッシングです。

Movable Type 4.2がリリースされて喜んで導入したんですが、色々残念なことになっています。
多分ダイナミック・パブリッシングがらみなんだろうと思うけど、もしかしたらスタティック・パブリッシングでも起こるかもしれない。

MTEntriesでタグやカテゴリで関連記事を表示しようとしてもちゃんと動かないし、さっき過去の記事を見てたら酷いことになってたので調べてみたら、フォーマット無しで書いた記事の追記部分に書いた記事の改行がしっかり<br />に変換されている。(‘Д`)
多分追記部分に付いてフォーマットなしの処理が行われてないのだと思う。自力でソースいじって直せそうな気もする。

大体、MT4.2のリリース遅れたのも多分あまりにもバギーだったのだろう。で、まだバグ取り切れてないということでしょう。機能多いし、色々機能追加や仕様変更もあった見たいだし。MTのバグトラッキングとか覗いてみるとMTEntries関係は過去にも同じようなバグが合った見たいだし現状もあるのかもしれないけど英語なのでよくわかんないよつ´Д`)つ

テンプレート初期化しても、トップページがうまく表示されなくて過去のページの残骸見たいのが表示される件についても、バックアップしたテンプレートを読み込んでるみたいななのでパッチを当てました。っていうのをどっかで見かけた。

とりあえず、急いでない人はMT.4.2.xが出るまで待ったほうが吉の様な気がします。SQLiteじゃ無ければ平気なのかも?

で、下がテストです、本文と追記部分に同じ文と同じタグを書いてますが、追記部分は、タグの間の改行が<br />に変換されてしまっていてタグが見えてしまっています。
ubicast bloggerで投稿すると基本的にタグは属性毎に改行されてしまうので、ubicast bloggerで投稿した画像付きの記事がとんでもないことになっています。例えば下の記事とか

2泊3日の川治温泉旅行に行ってきました。その1 (KUMA TYPE)
https://blog.kumacchi.com/2008/04/post_296.html

早く直るといいなー(フィードバック方がいいのかなー?)

————–本文テストここから————-
フォーマット無しで書いても、追記のに書いた部分は改行が<br />に変換されてしまうっぽいのでテスト。

ああああ
<改行>

タグの途中で改行(本文で)
ここ
————–本文テストここまで————-

(続きを読む)

タグ : ,

システムテンプレートの「コメント完了」テンプレートをいじってみた。

現在MovableType4.2でCaptcha認証を使ってコメントスパム対策を行っています。Captcha認証の是非はともかくとして、このブログのテンプレートはMT3.2からのテンプレートをそのまま引き継いで使っています。現在は色々テンプレートも仕様が変わってきていると思うのでこの限りではありませんが、Captcha認証に失敗した時に、エラー画面が表示されますがそこに「元のブログ記事に戻る」というリンクが有りますが、これが曲者です。「元のブログ記事に戻る」とあるので普通押しちゃうじゃないですか?でもこれ普通のリンクなので押しちゃうと書いた記事が消えちゃいます。(おい

Captcha認証
Captcha認証

Captcha認証失敗
Captcha認証失敗

わかっている人であればこの段階でも普通にブラウザの戻るボタンで戻っていけば記事が残ってるところまで戻れるのですが、普通わからないじゃないですか?「あーコメント消えちゃったもう書いてやんね!プンプン」って事になるわけですよね?

これまずいよなーと思っていたんですけどほったらかしてました、MovableType4.2にしてテンプレート初期化すればうまい具合に変わってるんじゃないかと思ってたんですよ。でも、前に書いた記事の通りテンプレート初期化がうまくいかないので現状のテンプレートのまま行くことにしたんですけど、じゃーこれもどうにかしないとなーと思って、ちょっと直したんです。

直したといっても大したことじゃなくて、システムテンプレートの「コメント完了」のテンプレートの下記の部分

<p><a href=”<$MTEntryLink$>”>元のブログ記事</a>に戻る</p>

を下記の様にJavaScriptで一つ前のページに戻るようにしただけです。

<p><a href=”javascript:history.back();”>元のブログ記事</a>に戻る</p>

これで記事を消さずに前のページに戻ることが出来ます。

 

タグ :

大手ブログから軒並みトラックバックが出来ない件について

下記のエントリーで
Windows2000でGyaoやYahoo!動画が見れない – 問題回避編 (KUMA TYPE)
https://blog.kumacchi.com/2008/02/windows2000gyaoyahoo.html
黒翼猫さんにトラックバックが出来ないとご指摘を受けました。
大手のブログ全滅ですね。(‘Д`)

いあ、LiveDoorだけじゃなくて、SeesaaからもSakuraからもMaglogからも
トラックバックできなかったような。
(ちゃんと記事内にURLが書かれている状態で)

そういうわけで調査しました。私のブログは現在MovableType 4.2(以降MT)ですが、標準搭載のプラグインのセット「spamlookup」と言及リンクをチェックする「TBPingLinkLookup」プラグインでトラックバックスパムを弾いています。
とりあえず最初にチェックしたのは、ライブドアのブログとFC2のブログからこのブログにトラックバックを行ってみました。結果はFC2からはトラックバックできましたがライブドアからはトラックバックできませんでした。ライブドアからのトラックバックが拒否された理由をログで見てみるとトラックバックを送ってきたサーバーのIPアドレスとブログのドメインのIPアドレスが異なると「SpamLookup – Lookups」がスコア-1.0を返している為でした。スコアが幾つならスパムと判定するかはMTのデフォルトの設定で0より小さいになっています。
そういうわけで、じゃースパム判定を緩やかにして判定値を-1.0まで下げてあげれば良いかなと思い-1.0にしました。スパム判定を緩やかにしたら普通にトラックバックスパムが入ってくるんじゃないかとも思いましたが「TBPingLinkLookup」があるから言及リンクの無いトラックバックは無条件にはじいてくれるだろうと判断してそうしました。
実際にはどうなったかというと、物凄い勢いでトラックバックスパムがチェックをスルーしてブログに表示され始めましたw。
(‘A`)エッ なんで?
と思ったのはいうまでもないのですがw。
何でだろう「TBPingLinkLookup」が機能していないのかなーと思ったのですが、実際に言及リンク無しで最初に試しているのでそれは無いはず。
で、色々調べてみました。下記の例の様にスパム判定されたトラックバックを良く見てみると、「最終レーティング: -1」となっています。「TBPingLinkLookup」と「SpamLookup – Lookups」のチェックにそれぞれ引っ掛かってスコアをそれぞれ-1.0返されてるのに-2.0では無く何故か-1.0。なんでかなーと最初は思っていたのですが
最終レーティング: -1

テスト スコア 結果
TBPingLinkLookup -1.0 Junked Ping without links to your site
SpamLookup – Lookups -1.0 ドメインのIPアドレス「209.63.57.10」と送信元「http://example.com/young-teen-porn-pictures.html」のIPアドレス「205.234.140.219」が合致しません

色々なトラックバックスパムの判定結果を見てみると下記の様なものが有り結局最終レーティングはスコアの加算ではなく平均値であることが判りました。
最終レーティング: -2

テスト スコア 結果
TBPingLinkLookup -1.0 Junked Ping without links to your site
SpamLookup – Lookups -1.0 ドメインのIPアドレス「64.74.142.143」と送信元「ttp://example.com/」のIPアドレス「64.191.50.135」が合致しません
SpamLookup – Keyword Filter -4.0 ‘phentermine’がワードフィルタ一致: ‘phentermine’

つまり、何個チェックに引っ掛かってもスコアが-1.0の場合は平均された-1.0になってしまうのでスパム判定値を-1.0まで引き下げてしまうと、「TBPingLinkLookup」のチェックに引っ掛かってるにもかかわらずスパムと判定されなくなってしまいます。そしてチェックをスルーすることによってトラックバックスパムが普通にトラックバックとしてブログ上に表示され始めました。
ブログにはトラックバックスパムを14日保存するようになっていますが、みてみると1000件以上のスパムが隔離されています。つまり1日80件近いトラックバックスパムがきてるわけで、物凄い勢いでトラックバックスパムがブログ上に表示されるようになってしまったのも当然ですw。
とりあえず14日は長すぎるので7日にしました。結果隔離されているトラックバックスパム数は現在550位になっています。(無駄にデータベースファイルのサイズが大きくなってるのはこれの所為か!?)
なので急いでスパム判定値は初期値である「0」に戻しました。
XG000121.JPG
しかし、このままだと、大手ブログサイトからのトラックバックは全滅だし(ま、それもありか?w)判定基準値を「-1.0」にするとトラックバックスパムまで投稿されちゃうし、どうしたものか?と考えました。
結論としては、平均値であるのならば平均値をあげればいい平均値をあげるにはプラグインが返すスコアをあげてあげればいいということで「TBPingLinkLookup」のソースを見てみると、それらしい部分がありました。

return (-1, “Junked Ping without links to your site”);

で、返すスコアを「-2」に修正して下の様にしました。

return (-2, “Junked Ping without links to your site”);

結果下記の様に最終レーティングが-1.5になる様になったのでスパム判定基準値を「-1.0」にしてもうまくトラックバックスパムを隔離してくれています。これで大手ブログからの言及リンクつきのトラックバックであれば受信することができる様になっているはずです。
最終レーティング: -1.5

テスト スコア 結果
TBPingLinkLookup -2.0 Junked Ping without links to your site
SpamLookup – Lookups -1.0 ドメインのIPアドレス「38.108.177.226」と送信元「http://example.com/forums/incestories」のIPアドレス「69.16.204.251」が合致しません

もう一つの方法として、判断基準値は「0」のままで対応する方法として、「TBPingLinkLookup」プラグインを使うのではなく「BanNoReferTb」を使う方法があります。TBPingLinkLookupは言及リンクのないトラックバックを必ず弾くものだと思い込んでいたのですが、実際にはMTのジャンクフィルター機能を利用(スパムチェック機能)していてスコアを返すようになっているので必ず弾くわけではないということをいまさら認識w。
「BanNoReferTb」はソースをちら見した感じ必ず弾くようです。「BanNoReferTb」は「TBPingLinkLookup」の元になったプログラムでSixApartの宮川氏がジャンクフィルターを使う用に改造したものが「TBPingLinkLookup」だということです。よくわからない場合は「BanNoReferTb」を使うのが良いかもしれませんが、最新のMTでは動かないかも知れませんので要確認です。あと、有無を言わさずに弾くのでMTのトラックバックスパムログに残らないと思います。理解していれば「TBPingLinkLookup」を使った方が無難そうです。
Movable Type で言及リンクのない TrackBack ping を弾くプラグイン – naoyaのはてなダイアリー
http://d.hatena.ne.jp/naoya/20050703/1120389935
同様の件でお困りの方はお試しあれです。

タグ :

MTメモ:MovableTypeでダイナミックパブリッシングに変更後確認すること

今回MovableType(MT)でスタティックパブリッシングからダイナミックパブリッシングに切り替えた時に色々トラブルがあったので確認事項をメモしておく。

  • 確認事項というか、バージョンアップを行う前に完全なバックアップを最初に必ず取る。
    • 後で泣きを見ない様に、必ずバックアップを取る。特に大幅なバージョンアップの場合は大切。
  • まず最初にするべきことは、ダイナミックパブリッシングに切り替えたとたんサーバーエラー500になってしまう場合。
    • 知らないと最初パニクってしまうと思う。前に実験していたので今回は焦らなかった。.htaccessが作成されているはずなので.htaccessの三行目語りのOptions行を削除するなりコメントアウトするなりする。今まで既に.htaccessを使用していた場合、作成されないので、一旦.htaccessをリネームするなどして退避してからダイナミックパブリッシング化する。ダイナミックパブリッシング化に成功したら元の.htaccessの内容をMTによって作成された.htaccessに追記する。
  • RSSが取得できるか
    • ダイナミックパブリッシングにしたことによって、私の環境では、index.xml、atom.xmlなどが取得できなくなっていた。しばらく気付かなかったので焦った。そういうものなのかMTのバグなのか環境の所為なのか、私の使い方が悪いのかは不明。index.xml、atom.xmlをスタティックパブリッシングにしたら改善したので結果下記の様にすることにした。
  • スタティックでよさそうなものはスタティックにする
    • 上記を踏まえて、スタティックでいいものはスタティックにした。何でも間でもダイナミックにするとサーバーに負担も掛かるだろうし、テンプレートのページでAtom、RSD、RSS 2.0、Site Javascript、スタイルシートをスタティックに変更した。
  • ページ分割を導入する場合、MTのキャッシュ機能を有効にするとページ分割機能が働かなくなる
    • 知らないとはまる。解決策はキャッシュを無効にするか、関連記事の回避方法を使う。
  • ダイナミックパブリッシングではプラグインが動かないもの(ページの生成系)がある。
    • 動かないプラグインがあるとエラーが出るのでよくわからない場合は、追加したプラグインは退避しておいて後から1個ずつ追加する。
  • 書き込み、コメント、トラックバックが正常にできるか確認する。

 

タグ : ,

Movable Type 4.2でダイナミックパブリッシングでページ分割

Movable Type 4.2+SQLite3+PHP5.2.6でダイナミックパブリッシングにしたわけですが、ダイナミックパブリッシングにせっかくしたのですからページ分割したいわけです。カテゴリ・アーカイブとアーカイブページは今まで1ページだったので巨大なページになっていたわけです。

そういうわけで、カテゴリ・アーカイブページとアーカイブページをページ分割することにしました。WingMemoさんのところに詳しいやり方が書いてあるので詳しくはそちらをご覧下さい。アーカイブページはちょっと作りが違うのでカテゴリ・アーカイブでのやり方をできる様にMTArchiveListを使わないでMTEntriesを利用するように書き換えました。

WingMemo: ダイナミック・パブリッシングで頁分割(1)
<http://taeko.w-museum.com/wing/200602091310.html>

 

で、はまったことをメモしておきます。実は1回うまくいかなくて元に戻したんですよね。ページの切り替えが出来なかったんですよ、切り替えても元のページが表示されるって現象です。

で、結局何が原因だったかっていうとMTのキャッシュ機能をONにしてるとキャッシュされたページが表示されるのでページ切り替えが出来なかったんです。うまくいかなくてあきらめて一旦元に戻したんですが、後でもしかしてキャッシュかなーと思ってキャッシュをOFFにしてやってみたらうまくいきました。ダイナミックパブリッシングにも色々罠がありますねー。

しかし、キャッシュをOFFにするとただでさえ重いのに更に拍車を掛けて表示が重たいわけです。どっちを取るのか悩んでしまうわけですが、こちらを立てればあちらが立たずとかつかえねーとか思っていたのですが、何か回避方法は無いものかと検索してみたところありました。下記のブログの記事が大変参考になりました。詳しくは下記のブログへGOです。

Movable TypeでPHPダイナミックパブリッシングとキャッシュとページ分割を同時に利用する方法::レビログ
<http://revilog.com/2007/05/010715.html>

mtview.phpをちょっと細工するだけでページ分割するページだけキャッシュしないようにするっていう方法です。いやー助かりました。これで実際うまく行きました。

 

※っていうかここまで色々調べないと痒いところに手が届かないMTってどうなのよ?

タグ : ,

関連記事の表示がうまくいかないんですよ

Movable Type 4.2+SQLite+PHP5.2.6でダイナミックパブリッシングにしたわけですが、結果関連記事表示プラグインが使えなくなったので、前にコメント欄で教えていただいた下記のページをみて関連記事の表示をやってみたんですよ、でもね、うまく動かないのこれが、これだダイナミックパブリッシングの所為なのかSQLiteがらみの問題なのかわからないのですが、

MTSetVar(Block)/MTIfタグの具体的な利用例。 (Junnama Online (Mirror)) <http://junnama.alfasado.net/online/2007/10/mtsetvarblockmtif.html>

具体的にどう変なのかというと、出力されたページのソースを見るとエントリー全体のHTMLタグが出力されてるみたいで、関連記事のタイトルが表示されないとかそういうレベルの問題じゃないわけでw。

色々試してみると、下記の部分でなんか、そうなっちゃうみたいなんで、

<MTEntries tag=”$entrytags” lastn=”11″>

じゃー$entrytagsの中身がおかしいんじゃないかと思って固定で「MT」って入れてみても同じ。ダメなんですよorz

<MTEntries tag=”MT” lastn=”11″>

じゃーカテゴリならどうなの?って下記の様にしてみたらうまくいった。

<MTEntries categorys=”MT” lastn=”11″>

で、色々試したけどどうしてもダメなので、あきらめてカテゴリで関連記事表示するようにしてみた。

下の様な感じ、表示内容については関連度が低くなってしまったので納得いかないんだけどとりあえずこれで凌ぐしかない(‘Д`)

なんかもうね、色々つかれちゃったよw。

解決方法わかる方教えてください。m(_ _)m

<MTSetVarBlock name="entrytags"><MTEntryCategories glue="
OR "><$MTCategoryLabel$></MTEntryCategories></MTSetVarBlock>
<MTSetVarBlock name="thisid"><MTEntryID></MTSetVarBlock>
<MTSetVar name="match" value="0">
    <MTEntries categorys=”$entrytags” lastn=”11″>
        <MTSetVarBlock name=”eid”><MTEntryID></MTSetVarBlock>
        <MTSetVarBlock name=”entryCount”><MTEntriesCount></MTSetVarBlock>
        <MTIf name=”entryCount” gt=”1″>
            <MTEntriesHeader>
                <br />▼関連記事:<br />
                <ul>
            </MTEntriesHeader>
            <MTUnless name=”__last__”>
                <MTUnless name=”eid” eq=”$thisid”>
                    <li><a href=”<MTEntryPermalink>”><MTEntryTitle></a></li>
                <MTElse>
                    <MTSetVar name=”match” value=”1″>
                </MTElse>
                </MTUnless>
             <MTElse>
                <MTIf name=”match”>
                    <a href=”<MTEntryPermalink>”><MTEntryTitle></a></li>
                <MTElse>
                    <MTIf name=”__counter__” ne=”11″>
                        <li><a href=”<MTEntryPermalink>”><MTEntryTitle></a></li>
                    </MTIf>
                </MTElse>
                </MTIf>
            </MTElse>
            </MTUnless>
            <MTEntriesFooter>
                </ul>
            </MTEntriesFooter>
        </MTIf>
    </MTEntries>

(続きを読む)

タグ : ,

Movable Type 4.2に移行作業中です。

Movable Type 4.2がリリースされたので喜々としてバージョンアップに取り組んだのですが、
ちょっとだけ大変な作業と思ってたらとっても大変な作業になってしまった。orz
色々トラブルが発生して昨日の15時過ぎにMT4.2がリリースされてから今まで(途中寝たけど)色々やっている。
何がトラブったかっていうと、ダイナミックパブリッシングです。
環境はサクラのレンタルサーバースタンダード
MT.4.2 Pro、SQLite3,PHP5.2.6
最初、MT4.2を新規にインストールして、mt-config.cgiとSQLiteのDBファイルだけ残してダイナミックパブリッシングしてみたけどどうにも500エラーで動かない。もちろん.htaccessは修正。
しょうがないので元のMT4.14の状態にバックアップから戻して、今度はMT4.2を上書きしてみたら今度はダイナミックパブリッシングが動作するようになった、が、何故かトップページがとんでもないことになる問題に遭遇。テンプレートは今までMT3.2から使っていたものを今回のバージョンアップを機に初期化して最初から構築するつもりだったんだけど、テンプレートを初期化すると何故かトップページがMT3.2で利用していたテンプレートとMT4.2のテンプレートが混ざり合ったぐちゃぐちゃな状態で表示される。チョと使えない。
スタイルを適用しても全く反映されない。
SQLiteのデータベース内に保存されている情報がうまく更新されていないのではないかと予想。
ブログのデータをエクスポートして、データベースファイルを削除して0から作り直したらうまくいった、スタイルの適用もうまくいくし、トップページも正常に表示されるようになった。
0から作り直した際にテンプレートセットの選択があるのだけれども試しに「コミュニティブログ」なる物を選択してみた。既定のブログとは違ったデザインになる。その他にも「コミュニティ掲示板」とかあるのだが試していない。で、とりあえずどういう表示になるか確認したのでテンプレートセットを「既定のブログ」に戻そうと思ってテンプレートの初期化で「既定のブログ」に戻したのだが戻らないw。
なにやらテンプレートセットがらみでSQLite関係にバグがあるのかはたまたサクラの環境によるものなのかはわかりませんが、色々疲れました。
しょうがないのでまたMT4.14の状態に戻して、MT4.2を上書きして、ダイナミックパブリッシングにしたのが現在の状態。しょうがないのでこのまま行きます。つ´Д`)つ疲れたー
テンプレートセットを初期化したかったのはCAPTCHA認証が無理やりMT3.2のテンプレートに追加したものなので動きが怪しいというのが理由ですが、ちゃん把握して導入すればちゃんと動くと思うのでそうしようと思う。
やっぱりSQLiteでのダイナミックパブリッシングはまだ地雷なのだろうか?
あと、ダイナミックパブリッシングにした影響で関連記事のプラグインがエラーになるので外しました。MTの機能で関連記事の表示できるようになっているらしいですのでそれを導入しようと思います。
ダイナミックパブリッシングにすると、現在使っているサーバーだとかなりもっさり。キャッシュするように設定すると割とましになった。
現状こんな感じ。

(続きを読む)

タグ : , ,

Movable Type 4.2がいよいよリリース?

小粋空間さんの記事によると本日(2008/08/14)15時にMovable Type 4.2日本語版がリリースされるようです。既に英語版などはリリースされている模様。
待ちどうしいですねー。リリースされたらさっそくバージョンアップを行う予定です。
そして前々から予定していたダイナミックパブリッシングへの移行やテンプレートを初期化して最初から構築しなおす予定です。ちょっとだけ大変な作業になるかも。はやくリリースされないかなー。
小粋空間: Movable Type 4.2 リリース
http://www.koikikukan.com/archives/2008/08/14-000303.php

タグ : ,

SQLiteメモ:複数カラムにマッチするパターンをSELECTする方法

自前高速検索を修正しました検索できない場合があったからですが、キーワードを複数カラムのどれかにマッチするという条件の式に問題があったためです。

今までは下記の様な感じでSELECTを行っていました。(判りやすくする為に簡略化しています。)

「E.entry_text||E.entry_text_more||E.entry_title LIKE ‘%530購入%’」はMTの記事の本文、タイトル、追記にキーワード「530購入」が存在するかチェックするLIKE文です。
「E.entry_text LIKE ‘%530購入%’ OR E.entry_text_more  LIKE ‘%530購入%’ OR E.entry_title LIKE ‘%530購入%’」とする判りにあらかじめ本文、タイトル、追記の文字列を連結してLIKEを行う方法です。

下記の場合何故かマッチしないので色々試してみるとentry_text_moreの部分を取り除いて見ると上手くいく。何でかな-と思って色々検索してみると、

複数カラムに対するLIKE文の最適化 – 教えて!goo
<http://oshiete1.goo.ne.jp/qa1599858.html>

がヒットした。読んでみると下記のSQLの場合複数カラムのうち一つでもNULLのカラムがあると全部NULLになってしまい、マッチしなくなるらしい。となるとentry_text_moreを取り除くと上手くマッチするのも納得できる。追記は書かれているエントリーとかかれていないエントリーがあるので追記がない記事は検索できないことになる。ヽ(´ー`)ノダメジャン

そして上記の記事を参考にするとconcat関数を使えば良いらしい。実際に試してみるとSQLite対応していない模様、何か変わりになる関数は無いものかと色々探してみたものの無い感じ。何時も参考にさせていただいている下記のサイトの「coalesce」って言う関数が使えそうなんだけど、

「coalesce(X,Y,…)…引数のうち NULL でない最初のもののコピーを返します。引数のいずれも NULL の場合は NULL が返されます。少なくとも2個の引数が必要です。」

そうじゃなくてNULLの時に別の文字を返すか変換するような関数がほしいんだけどーーー。と思って激しくスルー(<大バカ)

SQLite が認識できるクエリー言語
<http://www.net-newbie.com/sqlite/lang.html>

SELECT
    E.entry_id
FROM 
    mt_entry AS E
WHERE
    E.entry_text||E.entry_text_more||E.entry_title LIKE ‘%530購入%’

そのうち色々検索していると下記のページを発見、それらしい関数が色々あるので片っ端から検索してみる
Firebird Reference Manual
<http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/firebird-jp-doc/reference/firebird_reference.html?rev=1.4>

すると「IFNULL」という関数が何だか使えそうでSQLiteもつかえるっぽい。検索してみるとまた

SQLite が認識できるクエリー言語
<http://www.net-newbie.com/sqlite/lang.html>

のサイトが検索に引っ掛かったので見てみると

「ifnull(X,Y)…引数のうち NULL でない最初のもののコピーを返します。引数のいずれも NULL の場合は NULL が返されます。前述の coalesce() と同じ振る舞いをします。」

coalesceと同じ振る舞いってだめじゃん(‘Д`)ナムーとか思っていると、ひらめいた( ゚∀゚)ピキーン!

よく考えてみると、「NULLではない最初のもののコピーを返します。」ということは、「ifnull(E.entry_text_more,”)」とすればentry_text_moreがNULLの時は次の「”」(から文字)が返るんじゃね?俺って天才じゃね?(<大バカ)

で、改良したのが下、上手くいきました。

SELECT
    E.entry_id 
FROM
    mt_entry AS E 
WHERE 
    ifnull(E.entry_text,”)||ifnull(E.entry_text_more,”)||ifnull(E.entry_title,”) LIKE ‘%530購入%’ ORDER BY E.entry_id LIMIT 100

つまり、ifnullかcoalesceを使えばよかったわけです。

entry_text_moreにだけifnullすればいいんだけど、念のため全部にifnullしてます。

回りまわって実は最初に見つけたcoalesceでよかったわけです。つ´Д`)つ

タグ : , ,

PostPet 4you β サービス

何だかソネットがPostPet 4youって言うサービスを準備しているみたい。よくわからないけど、メールソフトではなくてメッセージングソフト+SNSみたいな感じのようだ。中のいい友達のいる人で昔ポスペやっていた人はやってみると懐かしくて良いかもしれないですね。

PostPet 4you β

PostPetが廃れてしまった今、PostPetを使った新しいコンテンツの模索中といったところでしょうか?ポストペットは最初はオモチャみたいで良かったんだけどメールソフトとしては貧弱だった為に色々困ったこと(メール保存してるファイルが壊れちゃったりとかw)になったりした。それでポストペット3になってキャラクタは3Dになってメールソフトも多少まともになったんだけど、メールソフト本体が可愛くないし、インタフェースが訳のわからない代物になってしまった。いろいろやっちゃったなーという感じだった。僕自身メールソフトは有料なので体験版だけ試して製品版を買うには至らなかった。

ソネットっていうプロバイダは無料のメール会員だけにはなってるけどプロバイダ自体は使ったことは無いんだけど割と好きなプロバイダだ。早い時期からネットゲーに力を入れたりして潜水艦の「SARAC」っていうネットゲーのベータテストとか面白かったし、PAWって言う3D空間でチャットしたり散歩したりするセカンドライフのはしりみたいな事やってたしね。箱庭諸島を製品化してみたり、ソネットタウンやってみたり、リブリーやってみたり、ハーボットやってみたり結構いろいろなことやってて技術もあるのになんかそれらのコンテンツを生かせていないよな商売下手なイメージがあるw。ポスペはメールソフトなんだけどメールソフトなんてWindows使う場合はOutLookExplessが付いてるわけで買うわけ無いんだから無料配布にしてアイテム販売を中心に行うべきだったと思うしメールソフト自体も3Dって事に走りすぎて変に部屋増やして画面切り替えとか変なことするんじゃなくてかわいいメールソフトに走るべきだったともう。後からでは何とでも言えることですけどw。PAWもやめちゃったけど当時はサーバー代とか回線費用とか色々掛かったと思うけど今だったら安く運営できるのではないかと思うのだけどどうでしょうね。直ぐ飽きるかもしれないけどw。

POW nikoniko
パウ島で僕が飼っていたペット「にこにこ」

So-net | ホームページ
<http://www.so-net.ne.jp/>

かわいいペットが運ぶメッセージ┃ポストペット┃PostPet 4you
<http://postpet4you.jp/>

タグ :

 
© KUMA TYPE