ブレインテクノ社-公開ブログ

2010年5月アーカイブ

MTQRcode ($imageurlpath)

MovableType向けプラグインとして重宝な"MTQRcode"に関して小さい修正をしました。

Windowsベースサーバー向けの問題対策です。Unixベースのサーバーでは問題無いと考えられます。

現象: ウェブページに、はき出されたQRコードイメージへのURLリンク情報(HTML⇒<img src="http://www.example.com/xxx/qrcode.png")に一部「¥」のセパレータが含まれる為、(HTML⇒<img src="http://www.example.com/xxxqrcode.png") Geckoレンダリングエンジンを使用したブラウザー(Firefox等)でQRCodeが、うまく表示されません。Trident(IE)やWebkit(GoogleChrome)等では問題ありません。

対策 (QRcode.pl中61行目辺り): my $imageurlpath = $imagedir ? File::Spec->catfile($imagedir, $filename) : $filename;で「File::Spec->catfile」はUnixベースでは"/"のセパレータを出力しますがWindowsベースでは"¥"をセパレータとして出力します。これはこれでOSに依存しない工夫ということでOKなのですが、この度のケースでは障害となりました。そこで、邪道かも知れませんがたちまち、"my $imageurlpath = $imagedir ? ($imagedir .'/'. $filename) : $filename;"のように変更してやりWindowsベースのサーバ上でも"/"のセパレータを強制的に出力するようにしました。あくまで当方のテスト環境下の事なので、もし同現象でお困りの方はご自分の責任でトライしてみてください。coldsweats01

免許証の色

先日、普通自動車免許証の更新に行ってきました。軽微な違反が一つあったので免許証の色がブルーとなりました。自動車損害保険では殆どが、この免許証の色がゴールドなら割引をもらえるので、今までゴールドだっただけに、あと5年間の割引が吹っ飛んだのは、まぢ痛いcrying

今日の英語-第七回

今日の英語は「動名詞」です。第五回の「不定詞」と併せて学習するとより明確に理解できるかと思います。

しばしば、"不定詞 = 動名詞"と解されますが、必ずしも正しくありません。まずは下記の例を見てみましょう。

ex) This car needs to be fixed.

もし、「不定詞 = 動名詞」ならば、"This car needs being fixed." となるはず。ところが正しくは、"This car needs fixing." となり、「この車は、修理される必要がある。(修理が必要だ)」となるのです。この様に、主語が無生物であり、主語が「~される」時に、動名詞を用います。この用法に使われる動詞としては、"need ~ing"、"want ~ing"、"deserve ~ing" (~する(される)価値がある」等が挙げられます。

☆ 目的語に動名詞をとり不定詞をとらない動詞

mind ~ing「~することを気にする」以下同様「~することを…」 enjoy「楽しむ」give up「あきらめる」avoid「避ける」finish「終える」escape「逃れる」postpone「延期する」stop「やめる」deny「否定する」admit「認める」miss「免れる」他にも practice, put off, consider, excuseなど

☆ 目的語に不定詞をとり動名詞をとらない動詞

wish to~「~したい」以下同様「~することを…」desire「望む」decide「決定する」determine「決心する」agree「同意する」offer「申し出る」expect「期待する」pretend「ふりをする」refuse「拒否する」promise「約束する」resolve「決心する」hope「望む」learn「学ぶ」mean「つもりである」seek「しようと努める」など

☆ 動名詞と不定詞で意味が異なる動詞

remember ~ing「~したことを覚えている」⇔remember to~「~することを覚えておく」(忘れずに~する)
動名詞は「すでにしたこと」を表します。⇔不定詞は「これからのこと」を表します。
紛らわしいので、~ing 「~したこと」を、まずしっかり覚えましょう。
forget ~ing「~したことを忘れる」forget to~「~することを忘れる」try ~ing「試しに~してみる」try to~「~しようとする(努力する)」regret ~ing「~したことを後悔する」regret to~「残念ながら~する」ただし、I regret being unable to go.「行けなくて残念です」のように、現在のことを指すこともできます。そこで、 過去であることをはっきりさせるために、regret having p.p.にすることもあります。 "having P.P." を「完了動名詞」とよばれます。

☆ to~ing になり不定詞とよく勘違いされる表現

look forward to ~ing「~するのを楽しみに待つ」be used to ~ing「~するのに慣れている」be accustomed to ~ing「~するのに慣れている」object to ~ing「~するのに反対する」What do you say to ~ing?「~するのはどうですか」with a view to ~ing「~する目的で」devote oneself to ~ing「~することに専念する」when it comes to ~ing「~するということになると」in addition to ~ing「~することに加えて」など

☆ 動名詞を用いたイディオム

We can't know what may happen. = There is no knowing what may happen. 「何が起きるかわからない」
There is no ~ing. = It is impossible to~.「~できない」
動名詞を用いたイディオムを覚えましょう。
There is no ~ing.「~することはできない」It is no use ~ing「~してもむだだ」、feel like ~ing「~したい気分だ」on ~ing「~するとすぐに」in ~ing「~するときには」、cannot help ~ing「~せずにはいられない」never ~ without …ing「~すると必ず…」、be worth ~ing「~する価値がある」of one's own ~ing「自分で~した」など

覚えることが多いけど、がんばってね~ happy02

最悪

一週間程前から「ぎっくり腰」というものになり、4日間くらい全く人間を止めていました。まだ、かなり痛みますが人間に戻りやっと今日から復帰。最悪の一週間でした。crying

今日の英語-第六回

今日は、副詞を考えてみましょう。まずは、副詞に付いて下記の理解をしていますか?

副詞は動詞を修飾する品詞。具体的には "時"、"場所"、"目的"、"理由"、"手段"、"方法"、"程度"、"様子"等に分類できます。

加えて、「副詞 = 前置詞 + 名詞」の公式が成り立ちます。この理解は当たり前って思う人が多数でしょう。しかし案外、応用すべき場面で忘れがちです。例えば、

"Why do you study English?"  「どうして、貴方は英語を勉強するのですか?」

という「目的」或いは「理由」を問う疑問文を考えてみます。"Why" は副詞の疑問詞ですね。そうすると 「前置詞+名詞」に分解できるはずです。即ち、名詞を問う疑問詞が使えるということに気が付きます。名詞を問う疑問詞には、"What" や "Who"、"Whom"、"Which" 等がありますね。前記の内、"What" を使うと "For what" で「何の為に」という副詞句が出来上がります。これを使い、"What do  you study English for?" 又は、"For what do you study English?"としてやれば、同等の疑問詞を作成することが可能となります。もう一つ、例題をあげてみましょう。

"With whom did you go to the party?"  「誰と一緒に、貴方はそのパーティに行きましたか?」

"With whom" の部分は「前置詞+名詞」になっていますから、適当な副詞が存在するはずです。"together" ですね。"Who went to the party together (with you) ?" という文が成り立つはずです。副詞は5つの文型を考える時、なんら役割を持たせてもらっていない品詞ですが、より表現豊かな文を作成する上で非常に大事だということがわかります。今日は、疑問文を利用して副詞を説明しましたが、関係代名詞⇔関係副詞等でも全く、同じ考え方でいれば、簡単に理解できると思います。また機会があれば、副詞に付いてより深く説明しようと思います。(@^^)/~~~

MTQRcode (QRコード発行)

モブログ用URLをお知らせする手段の一つとして、MovableType/Plug-inの「MTQRcode」を使用させて頂きQRcodeを自動生成させています。その際、当サイトでは、「mt-rebuild.pl」でWinサーバー側のタスク実行で定期的にサイトを再構築させていますが、「Use of uninitialized value in concatenation (.) or string at ・・・」と表示され、サーバー側タスク実行時に叱られてしまいます。これは、"•"でつなげている変数が文字列として初期化されていないことが原因なので変数に放り込む前に、下記の様にしてやることで回避可能です。 QRcode.plをオープンし53行目あたりの「$filename = $arg->{filename} . $entry ? '-' . $entry->id : '' || $cfg->{QRcode_filename_base};」のところを下記の様に修正コーディングします。

if (exists $arg->{filename} && defined $arg->{filename}){
 $filename = $arg->{filename} . $entry ? '-' . $entry->id : '' || $cfg->{QRcode_filename_base};
} else {
 $filename = $entry ? '-' . $entry->id : '' || $cfg->{QRcode_filename_base};
}

以上です。当方ではOKの結果ですが、同じ症状の場合は、ご自分の責任で書き換えてみてください。それと、もう一つ、「MTQRcode」を実行させる為には、Perlモジュールの"GD::Barcode::QRcode "があらかじめ組み込まれていることが前提条件ですが、当サーバーでは、生成されたQRコードのイメージをバイナリモードではきださないと上手く表示されませんでした。開いたQRcode.plの79行目あたりに下記の通り赤字のコードを加えてバイナリモードでイメージをはきださせます。

 

 open my $fh, ">$imagefile" or return $ctx->error('cannot write file: ' . $imagefile);
 binmode $fh;
 print $fh $image;
 close $fh;
これも、同じ症状の場合は、ご自分の責任で書き換えトライしてみてください。delicious

去年あたりから、「Lunascape」というブラウザーを使用しています。ウェブ上で稼働する様々なコンテツ、アプリケーションを開発しているので非常に重宝しています。というのは、このブラウザーは「Trident」「Gecko」「WebKit」のトリプルレンダリングエンジンを搭載しているので「IE」「FireFox」「GoogleChrome」等のテスト環境が一つのブラウザーで得られるからです。起動後最初のエンジン切り替えは、3秒~5秒程度の時間がかかりますが、2回目からは比較的スムースな切り替えができます。例えば「Gecko」使用時には「FireFox」の様々なプラグインも組み込めますから、開発者にとってはありがたいブラウザーです。開発して下さった「Lunascape Corp」さん、ありがとうござます sun

クラウディなネットワーク上システム開発に「CodeGear」の「Delphi for PHP」を使用しています。ところが、付属しているVCLカレンダーは日本語化モジュールは存在しますが、何故か未完成で使用不可となっています。これを自分なりに日本語化し使用しています。そこで今回情報シェア―の為、投稿します。ちょっと長文になりますが、お役に立てればと思います。ターゲット: (CodeGear)  Delphi for PHP 2.1.0.1098 / DateTimePicker及びMonthCalendar まずは、「Delphi4phpインストールパス\vcl\jscalendar\lang\calendar-jp.js」をオープンします。(もし、存在しなければテキストエディターで作成して下さい。)  以下のコードをペーストして保存して下さい

----ここから

// ** I18N
Calendar._DN = new Array ("日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日", "日曜日");
Calendar._SDN = new Array ("日", "月", "火", "水", "木", "金", "土", "日");
// その週の初日設定 "0" 日曜日, "1" 月曜日
Calendar._FD = 0;
Calendar._MN = new Array ("1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月");
Calendar._SMN = new Array ("1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月");
// tooltips
Calendar._TT = {};
Calendar._TT["INFO"] = "カレンダー情報...";
Calendar._TT["ABOUT"] = "DHTML Date/Time Selector\n" + "(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
"For latest version visit: http://www.dynarch.com/projects/calendar/" + "GNU LGPLによる配布。詳細は http://gnu.org/licenses/lgpl.html まで..." + "\n\n" + "日付選択方法:\n" + "- \xab, \xbb 年選択ボタンです...\n" + "- " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " 月選択ボタンです...\n" + "- マウスボタンをホールドすると高速に選択できます..."; 
Calendar._TT["ABOUT_TIME"] = "\n\n" + "時刻選択方法:\n" + "- 各部分をクリックして時刻を前進させるか、\n" + "- シフトキーを押しながらクリックして時刻を後退させるか\n" + "- 又は、クリックしながらドラッグすれば高速で時刻変更ができます..."; 
Calendar._TT["TOGGLE"] = "週の最初の曜日を切り替え";
Calendar._TT["PREV_YEAR"] = "前年"; 
Calendar._TT["PREV_MONTH"] = "前月"; 
Calendar._TT["GO_TODAY"] = "今日"; 
Calendar._TT["NEXT_MONTH"] = "翌月"; 
Calendar._TT["NEXT_YEAR"] = "翌年"; 
Calendar._TT["SEL_DATE"] = "日付選択"; 
Calendar._TT["DRAG_TO_MOVE"] = "ウィンドウの移動"; 
Calendar._TT["PART_TODAY"] = " (今日)";
//Calendar._TT["PART_TODAY"] = " (today)"; 
Calendar._TT["MON_FIRST"] = "月曜日を先頭に"; 
Calendar._TT["SUN_FIRST"] = "日曜日を先頭に"; 
Calendar._TT["CLOSE"] = "閉じる"; 
Calendar._TT["TODAY"] = "今日"; 
Calendar._TT["TIME_PART"] = "(Shift-)クリックかドラッグで変更..."; 
Calendar._TT["DAY_FIRST"] = "%sを週の初日に設定します..."; 
Calendar._TT["WK"] = "週"; Calendar._TT["TIME"] = "時間:"; 
// This may be locale-dependent.  It specifies the week-end days, as an array 
// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1 
// means Monday, etc. 
Calendar._TT["WEEKEND"] = "0,6"; 
// date formats 
//Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d"; 
//Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e"; 
Calendar._TT["DEF_DATE_FORMAT"] = "y-mm-dd"; 
Calendar._TT["TT_DATE_FORMAT"] = "%m月 %d日 (%a)";

----ここまで 次のページに続く・・・

モブログ対応として、現在は記事投稿用に「mt4i」そして画像投稿用に「Mova-Motion」というどちらも、すばらしいPlug-inを使わせて頂いていますが、導入の際に、はまってしまったことがありました。アルファサード有限会社 代表 野田純生氏が作成された「Mova-Motion」というPlug-inは、MovaType5.01上でも動作しますが、以下の2点に修正が必要かもしれません。

1. メール投稿先アドレス

「メールID+秘密のフレーズ@メールドメイン」となる為、当方のメールサーバではエラーとなり、送信ができませんでした。そこで、「/mt/plugins/MovaMotion/lib/MovaMotion.pm」をオープンし、下記の様にパラメータを追加してやります。

82行目あたり (赤文字部分を追加、$tokenを追加する前に素のメールアドを取得し新規パラメータ配列として追加する。)

        if ( _can_post ( $user, $blog_id ) ) {
            if ( $type eq 'createmail' ) {
                %param->{ createmail } = 1;
                my $postaddress = $plugin->get_config_value( 'movamotion_address', 'blog:'. $blog_id );
                my $mailaddress = $postaddress;
                my $token = $user->mail_token;
                $postaddress =~ s/@/+$token@/;
                %param->{ mailaddress } = $mailaddress;
                %param->{ postaddress } = $postaddress;
            }
次に、テンプレート(view.tmpl)をオープンします。(68行目あたり)

<a href="mailto:<mt:var name="mailaddress" escape="html">">[<__trans phrase="Create Mail">]</a>

以上でメール送信できました。

2. コメント及びトラックバック許可

当方のネット環境では、「Mova-Motion」で投稿後にmt4iから編集できませんでした。他に設定不足とかの原因があるかもしれませんが、投稿時にトラックバック/コメント許可を与えれば、OKだったので、「Mova-Motion」で画像を添付した記事を投稿時に「トラックバック許可」と「コメント許可」にチェックが入る様に追記しました。「/mt/plugins/MovaMotion/MovaMotion.pl」をオープンし、下記の様に追加してやります。

471行目あたり (赤文字部分を追加)

            my $entry = MT::Entry->new;
            $entry->title( $subject );
            $entry->text( $body );
            $entry->text_more( $links );
            $entry->author_id( $author->id );
            $entry->blog_id( $blog_id );
            $entry->status( MT::Entry::RELEASE() );
            $entry->class('entry');
            $entry->allow_comments($blog->allow_comments_default);
            $entry->allow_pings($blog->allow_pings_default);
            $entry->save or die $entry->errstr;
            $do = 1;
以上で「Mova-Motion」での投稿後、無事「mt4i」から編集可能となりました。happy01

「Mova-Motion」は大変すばらしいPlug-inです。ただし全てのコーディングをにらんでいませんので、上記の書き換えも当方のネット条件や設定の違いで発生しているだけかもしれません。もし同じ現象が起きていれば、ご自分の責任で書き換えてみてください。(@^^)/~~~

☆ To不定詞

To不定詞です。(以下、不定詞) まずは不定詞とは何なのかを説明したいと思います。

1. 不定詞とは動詞ホニャリャリャ化する sign02

to + 動詞原形」 (以下 "to+動詞" と簡略化して呼ぶ)

不定詞で使用される "TO" は、不定詞を学ぶ前までは前置詞としての役割しか持っていませんでしたね。前置詞としての "TO" は「~へ、~に」などの意味で、名詞の直前に置かれることにより、「前置詞 + 名詞 = 副詞」という形態により副詞となり動詞を修飾することで、場所、時間、理由、目的、手段、方法、程度、様子等を表現することができました。不定詞での"TO"が、前置詞としての"TO"と最も異なる点は、名詞の前に置かれるのではなく、動詞の前に置かれるということが言えます。動詞の直前に"TO"を置くことにより  、(1) 動詞を名詞化する。(2) 動詞を形容詞化する。 (3) 動詞を副詞化する  ことができるようになるのです。

2. 不定詞の名詞的用法 (動詞を名詞化する。) 「to + 動詞 = 名詞」

不定詞によって得られる効果の一番目は名詞化です。動詞が名詞になっちゃうので、主に文中では名詞しかこれない場所である主語(S)又は、目的語(O)として使用できます。もちろん、名詞もこれる補語(C)としても使用できますよ。

ex) I want an apple. 私はリンゴを欲する。(私はリンゴがほしい) → I want to buy apples. 私はリンゴを買うことを欲する。(私はリンゴを買いたい)

上記例文でわかる様に、緑文字の部分が目的語(O)で、どちらの構文も S+V+O となっています。

※ 和訳で「~は、が」が付く単語が主語(S)、「~を、に」が付く単語が目的語(O)と判断できます。"I want an apple."は「私はリンゴを欲する。」が元来の和訳で「私はリンゴがほしい。」は意訳と考えます。flair

3. 不定詞の形容詞的用法 (動詞を形容詞化する。) 「to + 動詞 = 形容詞」

形容詞の基となる役割は「名詞を修飾」でしたね。元来形容詞として存在している単語 (small, prettyなど)は名詞の直前に置かれ、その名詞を修飾 (その名詞がどのようであるか)します。不定詞は名詞の後ろに置かれ、その名詞を修飾する形態がとられます。

ex) I saw a small bird. 私は一羽の小さな を見た。→ small (小さい) という形容詞が bird (鳥)という名詞を修飾し、鳥が小さいという情報を鳥という名詞に与え、一羽の小さい鳥 (a small bird)という新たな名詞を作っている。一方、不定詞では、I want a book to read. 「私は、読むべきを欲する。」の様に、名詞を後ろから修飾するのです。しかしながら、"a small bird"は一つの新たな名詞として例文では、目的語(O)として扱われますが、"a book to read"は一つの名詞としは扱われず、例文では、S+V+O+C(補語)となるのです。"to read"は目的語(O)である"a book"を修飾するC(補語)です。※補語については別途、詳しく説明したいと思います。

4. 不定詞の副詞的用法 (動詞を副詞化する。) 「to + 動詞 = 副詞」

副詞は動詞を修飾し動詞に「場所、時間、理由、手段、方法、程度、様子」等を動詞に付加します。不定詞の副詞化では主に「理由、目的」を表します。

ex) I went to Tokyo to see him. 私は彼に逢う為に東京へ行った。 「逢う為に」→「行った」 どうして行ったか、何の為に行ったかの様に、「理由、目的」を表わします。

5. 結果の不定詞

不定詞では前出の基本用法に加えて、「結果の不定詞」と呼ばれる用法があります。

I came home only to find her absence. 「私は彼女の不在を知る為だけに帰宅した。」→この和訳は間違いです。私は帰宅したが(結果)彼女は不在だった。と訳すのが適当です。この事を「結果の不定詞」と呼び、複文で書き換えるとよく理解できます。I came home but found her absence. となります。気を付けましょう。

6. 不定詞の時制表現方法

まずは例文を見て下さい。

A. It seems that he is ill. = He seems to be ill. 「彼は病気であるようだ。」

B. It seems that he was ill = He seems to have been ill. 「彼は病気だったようだ。」

上記A. の様に、複文中の時制が同じである若しくは後の時制が未来形である場合は、"to + 動詞原形" 単純不定詞を使うことにより単文化できます。B.の複文中には時制が2つ存在しています。現在時制と過去時制です。この様に時制にズレがある場合、或いは後ろの文が元々完了形であった場合は、"to + have p.p." 完了不定詞を使用します。気をつけましょう。

不定詞の基本として説明しました。まだまだ不定詞の用法も複雑なものがありますので、機会があったら説明したいと思います。paper

今日の英語-第四回

今日の英語は「今日の英語-第二回」まで説明した分詞の続きを行きたいと思います。(全く計画性が無くてすいません<m(__)m>)まずは、以下の例文を見て下さい。
例1) Entering the room, he was watching TV.
例2) Entering the room, she has already gone.
例3) Being ill, I can not go hiking.
例4) Turning to right, you will find a post-office.
例5) Opening the textbook, he started to read it.
皆さんは上記4例をどう訳すでしょうか?下記の様な訳になります。
例1訳) その部屋に入った時、彼はテレビを見ていました。
例2訳) その部屋に入ったが、彼女はもう去っていた。
例3訳) 病気なので、(私は)ハイキングに行けません。
例4訳) 右に曲がれば、郵便局がありますよ。
例5訳) 彼は教科書を開いて読み始めた。
の様に訳せます。即ち元は下記英文であったと考えられます。
例1元) When I entered the room, he was watching TV.
例2元) Although (Though) I entered the room, she has already gone.
例3元) As I am ill, I can not go hiking.
例4元) If you turn to right, you will find a post-office.
例5元) He opened the textbook, and started to read it.
結論としては、動詞+ingを文頭に置けば分詞構文となり従属文(後に来る文)の内容により下記に示す5つの内容を形成出来るという事です。
1.時(~するとき、~すると)
2.譲歩(~だけれども)
3.理由(~なので)
4.条件(もし~なら)
5.付帯状況(~しながら)→接続詞
分詞構文が置かれる位置については、文頭の他に文中、文尾にも置く事が出来ます。
今日はここまで。次回はこの分詞を更に探究したいと思います。(@^^)/~~~

このアーカイブについて

このページには、2010年5月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2010年4月です。

次のアーカイブは2010年6月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

タグ・カテゴリ


カレンダー

カレンダー

モブログのURL

ブレインテクノ社-ブログのQRコード