EPSONのWebプリワールドにハマった話

そろそろ年賀状シーズンということで、筆まめなどのソフトの購入を考えられている方もおられると思いますが、EPSONプリンタをお持ちの方は、EPSONの"Webプリワールド"を利用すると無料の素材を用いた年賀状を作成することができます。ただこのサービス、かなりクセがあって少し手こずりましたので、うまくいかない場合に確認すべき点などについて書いてみたいと思います。
Webプリワールド Webサイト

このサービスを起動すると、Webサイトから自動的にソフトウェアがダウンロードされ、起動されます。
起動中

しかし、対応しているプリンタドライバがインストールされているのにもかかわらずこんなエラーメッセージが表示されることがあります。
エラーメッセージ

EPSONサポートサイトには対応している環境やInternet Explorerの設定についてかなり詳しく書いてあり、私の場合はすべての項目で問題ありませんでした(というより、Windows 8/8.1を普通に利用していてデフォルトの設定から変えていなければ普通は大丈夫なはず)。さらにいろいろ調べていると、サポートサイト内にネットワークプリンタを使用する場合の注意点が書いてあるのを見つけました。実は我が家のプリンタ(EP-805Aです)もWiFi接続にて使用しているのですが、ネットワークプリンタの接続方法としては、EpsonNet Print PortおよびStandard TCP/IP Portしかサポートされておらず、これ以外のポートで接続されている場合に上記のようなエラーが発生するようです。我が家の場合はWindows 8.1をインストールした際に自動的にプリンタが認識されてドライバがインストールされたので(プラグ&プレイも進化したものですね)、どのポートで接続されているのかということは意識したことがありませんでした。早速確認してみると…(コントロールパネルの「デバイスとプリンター」で「プリンターのプロパティ」を確認します)。
デバイスとプリンター

このように"WSD"というポートで接続されていました。
プリンターのプロパティ

仕方がないのでStandart TCP/IP Portで接続しなおすことにしました。そのためにはプリンターのIPアドレスが必要ですが、不明な場合は「プロパティ」(「プリンターのプロパティ」ではありません)で確認することが可能ですので、これをメモしておきます。
IPアドレスの確認

Standard TCP/IP Portに変更するには、「プリンターのプロパティ」から「ポートの追加」をクリックします。ポートの種類で"Standard TCP/IP Port"を選択して「新しいポート」をクリックします。
ポートの追加

追加ウィザードが始まりますので、プリンタのIPアドレスを入力すればOKです。
追加ウィザード

ポートの追加が成功したら、このように「標準のTCP/IPポート」にチェックを入れればOKです。テストページを印刷するなどして動作を確認しておきましょう。
ポート変更

以上の設定で無事に起動するようになりました。
起動成功

いまどきのプリンタはネットワーク機能を標準で備えていることも多く、こういうトラブルはありがちだと思います。もう少しサービスの側を柔軟に作ってもらえたらこんな苦労もいらないのですが…。私と同様にEPSONのプリンタをネットワークで使用していてWebプリワールドが利用できない方は上記の手順で確認されてみてはいかがでしょうか。

※本サイトで紹介する内容は、すべて個人的研究の範囲内で行っていることです。ここに書かれた内容を実行したことによる、データ(クラウド上を含む)・ソフトウェア・ハードウェアの障害および金銭的損害について、私が責任を負うことはできません。重要なデータはあらかじめバックアップを行い、内容を十分に理解したうえで、ご自身の責任の下で行ってください。


テーマ : プリンター
ジャンル : コンピュータ

tag : EPSONEP-805AプリンタWebプリワールド

Kyoro's Roomのその後…

以前、ブログじゃないほうのKyoro's RoomAmazonアソシエイトの審査に落ちたということを書きました。その理由はやはり「工事中」表示が多すぎたためだったようで、一通りのコンテンツを整備したうえで「工事中」の記事を削除して再申請したところ、あっさり通ってしまいました。ここで一つ気になったことがあったので、担当の方に質問をしてみました。Kyoro's Roomではガジェット紹介記事や音楽関係の記事を表示するのにCGIを用いているのですが、@niftyのホームページサービスの仕様として、通常のHTMLファイルにアクセスするサーバーURL(homepage?.nifty.com)とCGIにアクセスするサーバーURL(hpcgi?.nifty.com)が異なってしまっています。AmazonアソシエイトのリンクをCGIを用いて表示する場合、当然のことながらrefererはCGIサーバーのほうになってしまうわけですが、審査をしてもらったのは通常のwebサーバーのURLのみです。これが規約違反となるのかどうかが気になったため下記のような内容で質問をしてみました。

「ついさきほど上記のサイトの登録申請を行い、承認していただきました。このサイトでは一部CGIを用いており、CGIによって表示されるページにも商品リンクを挿入することも考えています。
ブラウザからCGIにアクセスする際のサーバー名が上記のURLと異なる("http://hpcgi3.nifty.com/megu0205/")のですが、この場合はこのURLも追加登録する必要があるのでしょうか? このWebサイトのURLとCGIのURLは同一プロバイダの同一アカウントに対して発行されているもので、一体のものです。」


これに対する答えとして、「どのようにCGIを使用しているのか詳細な内容を教えてください」とのお返事を頂いたので、説明をしたうえで「サーバーのURLが異なる場合は別々に承認していただく必要があるという理解でよろしいのでしょうか?」と再度質問したところ、下記のようなお返事をいただけました。

「お問い合わせのケースの場合は、別途URLの追加依頼をいただく必要はございません。このため、このままアソシエイトリンクの設置をいただきますようお願いいたします。」

というわけで、webサイトと一体になっているCGIについてはURLが異なっても追加審査は不要なようです。ただし、これはプロバイダとアカウントが同一の場合ですので、webサーバーとCGIサーバーを別のプロバイダで利用している場合には当てはまらないかもしれませんので、そのようなケースでは別個に問い合わせをした方がいいのかもしれません。で、実際はこんな感じで運用しています。
アソシエイトリンク(1)

こちらはディスコグラフィー表示。
アソシエイトリンク(2)

ついでといってはなんですが、Kyoro's Roomのガジェット紹介記事にスペック比較機能を追加してみました。メニューから機種一覧を表示させると、左側にチェックボックスが表示されますので、ここにチェックを入れてページ下方の「スペック比較」ボタンを押すと、チェックを入れた機種のスペック一覧表を表示することができます。
スペック比較(1)

まだまだ見やすいとはいえませんが、少しずつ改良していきたいと思います。
スペック比較(2)

ちなみにこの機能を利用するにはJavaScriptを有効にする必要があります。表示自体は新たに開発したCGIで行っていますが、ページ内のコントロールを読み取ってCGIにパラメータを渡す操作をJavaScriptで行っています。すべてCGIで行うよりはこのほうが簡単そうだったので…。(コードを見ていただければわかりますが、大したことはしていません。) ちなみにメーカーやシリーズの異なる機種を比べたい場合は、機種一覧のページ下方にある検索メニューで「未選択」を選んでいくと任意の組み合わせで比較することが可能となります。あまり役に立たない機能だとは思いますが、せっかくデータをCSVファイルで持っているので何か活用できないかと思って作ってみました。暇つぶしにでも見ていただければと思います。

テーマ : Webサービス
ジャンル : コンピュータ

tag : AmazonアソシエイトアフィリエイトKyoro'sRoom@niftyCGIJavaScript

ブログのサムネイル画像のURLをオリジナル画像のURLに変換する方法

Kyoro's Roomの電卓・ポケコンコーナーをこのブログのインデックスとして利用できるように整備していますが、記事中の画像(このブログの本文に使用しているサムネイル画像を挿入しています)をクリックすると拡大表示(サムネイルではないオリジナルの画像)が表示されるようにCGIを改良してみることにしました。最も簡単なのはデータファイルのフィールドを増やしてオリジナル画像のURLも格納する方法ですが、それだとデータの編集作業が大変です。そこで、サムネイル画像とオリジナル画像のURLの間の規則性を利用して自動的にオリジナル画像のURLを生成できるように作ってみることにしました。このブログ(FC2ブログ)の場合、オリジナル画像のファイル名末尾に 's' がついたものがサムネイル画像となります。

 サムネイル画像のURL例 : http://blog-imgs-66.fc2.com/k/y/o/kyoro205/FX-795Ps.jpg
 オリジナル画像のURL例 : http://blog-imgs-66.fc2.com/k/y/o/kyoro205/FX-795P.jpg

つまり、ファイル名の末尾に 's' がついておればそれを除去するのみでよいということです。サムネイル画像のURLの、サーバー名(例: 'http://blog-imgs-66.fc2.com' )を $server に、ディレクトリ名(例: '/k/y/o/kyoro205' )を $folder に、ファイル名(例: 'FX-795P' )を $filename に、拡張子(例: 'jpg' )を $ext に格納した状態で $result にオリジナル画像のURLを得るPerlのサンプルコードを載せておきます。

 $filename =~ s/s$//;
 $result = $server . $folder . '/' . $filename . '.' . $ext;

ついでに他のブログについても調べてみました。アメブロはもう少し複雑で、サーバー名中の 'stat' を 'stat001' に変更し、ファイル名の先頭の 't' を 'o'に変更しなければいけないようです。たとえば次のようなコードになります。

 $server =~ s/stat/stat001/;
 $filename =~ s/^t/o/;
 $result = $server . $folder . '/' . $filename . '.' . $ext;

ヤプログは結構単純で、ファイル名の末尾に '_large' を追加するだけです。

 $filename = $filename . '_large';
 $result = $server . $folder . '/' . $filename . '.' . $ext;

もちろんブログ内にオリジナル画像が存在しなければこのコードで生成されたURLを指定してもエラーになってしまいます。それに、まだまだ私はPerlの正規表現を使いこなせていないので、もう少しスマートな方法もあると思います。あくまでも参考程度ということで…。

なお、ブログの画像サーバーによっては外部からの参照をブロックしている場合があります。上記のコードでテストしたところ、当ブログの画像を利用するのには全く問題はありませんでしたが、アメブロの一部などで403や404のエラーが出ることがありました。また、ブロックされていない場合でも規約で明確に禁止されている場合にはこのような方法は利用しないほうがよいでしょう。私の利用しているFC2は、ヘルプでは外部からの参照はブロックしているように書かれていますが実際には問題なく動作しており、規約上も明確に禁止はされていない(「FC2のサーバーに負担をかける行為」に該当する可能性は否定できませんが、Kyoro's Roomのアクセス数は決して多くはないので実質的に問題になるほどの負荷はかけていないと思います)ので、グレーゾーンかもしれないと思いながら運用しています。そういう状況ですので、上記のコードのご利用はくれぐれも自己責任でお願いいたします。

※本サイトで紹介する内容は、すべて個人的研究の範囲内で行っていることです。ここに書かれた内容を実行したことによる、データ(クラウド上を含む)・ソフトウェア・ハードウェアの障害および金銭的損害について、私が責任を負うことはできません。重要なデータはあらかじめバックアップを行い、内容を十分に理解したうえで、ご自身の責任の下で行ってください。

テーマ : ホームページ・ブログ制作
ジャンル : コンピュータ

tag : CGIPerlブログ画像

IIS 8.5とPerl 5.18.2でCGIの開発環境をセットアップ

現在、旧Kyoro's Roomをこのブログの記事のインデックスとすべく準備を進めています。その一環として関数電卓やポケコンの簡易的なデータベースを作成したかったのですが、そのためにPCにPerlによるCGIの開発環境を整え、かなり前に作成した簡易的なデータベースCGIを改良することにしました。以前はApacheで環境を整えていたのですが、ファイルサーバにーFTPサーバーをセットアップする記事で紹介したようにWindows 7やWindows 8にはIISが標準添付されていますので、今回はApacheの代わりにWindows 8.1のIIS 8.5を利用することにしました。作業自体は難しいものではないのですが、Perlのバージョンが上がったことにより少し手こずった点もあるので、メモ代わりに残すことにします。まずは、必要なソフトをダウンロードします。

 ActivePerl … 言わずと知れたフリーのPerl処理系です。Windows Installer形式のものをダウンロード、インストールします。
 jcode.plPerlで日本語を処理するには不可欠のモジュールです。最新の jcode.pl-2.13 をダウンロードします。
 cgi-lib.pl … これも必須といえるモジュールで、便利な関数がいろいろと含まれています。最新の2.18をダウンロードします。

次にIISの機能をセットアップします。コントロールパネルの「Windowsの機能の有効化・無効化」で、「インターネット インフォメーション サービス」にチェック入れ、その下位にある「Web管理ツール」、「World Wide Webサービス」にチェックを入れます。
機能選択(1)

「アプリケーション開発機能」の下位の「CGI」にも必ずチェックを入れます。
機能選択(2)

インストールが完了したら、"C:\inetpub\wwwroot" を開いて、CGI格納用のフォルダ(ここでは"cgi-bin"としました)を作成します。
cgi-binフォルダを作成

「管理ツール」からIISマネージャーを起動し、左側のペーンの"Default Web Site"を右クリックして「仮想ディレクトリの追加」を選択し、さきほど作成した"cgi-bin"フォルダを指定します。この操作を行わないとCGI内部での相対パス指定が全く効かなくなってしまいます。私はあまりIISに詳しくないので、理由はよくわからないのですが…(汗)。
仮想フォルダの指定

左側のペーンの"Default Web Site"の中の"cgi-bin"をクリックして選択します。次に、真ん中のペーンの「ハンドラー マッピング」をダブルクリックします。
cg-binフォルダを選択

右側のペーンの「スクリプト マップの追加」をクリックして下記の2つの設定を追加します。
スクリプトマップの追加(1)

スクリプトマップの追加(2)

これで基本設定は完了です。cgi-binフォルダにCGIファイルを置けば呼び出すことができます。しかし、手こずったのはここからです。どうやら jcode.pl が最新のPerlに対応していないようで、エラーが表示されてしまいます。「あらゆるメモ」さんの記事を参考に、jcode.pl に変更を加えました。

 684行目
 &init_z2h_euc unless defined %z2h_euc;  
        ↓
 &init_z2h_euc unless defined $z2h_euc_inited;

 693行目
 &init_z2h_sjis unless %z2h_sjis;
        ↓
 &init_z2h_sjis unless defined $z2h_sjis_inited;

これで以前作ったCGIは問題なく動作するようになったため、これを改造して電卓・ポケコン用の簡易的なデータベースを実際に作ってみました。ブログ内の関連記事や外部サイトへのリンクなどもまとめてあります。旧Kyoro's Roomのほうで試験的に公開していますので、興味のある方はご覧ください。(トップメニューの"Calculator"から入れます)

テーマ : ホームページ・ブログ制作
ジャンル : コンピュータ

tag : WindowsIISCGIPerl

小型ファイルサーバの製作 (3)

無事にNASとして使えるようになった自作ファイルサーバですが、今回はさらにFTPサーバーおよびDLNAサーバーとしての機能を設定していきます。「なぜFTP?」と思われるかもしれませんが、我が家にあるFAX複合機、SHARP UX-MF70CWは着信したFAXをPDFにしてFTPサーバーにアップロードする機能を持っており、この機能をこれまで使用していたHD-H120LANで便利に利用していたので、その代わりとするために設定しました。

ご存知でない方もおられるかもしれませんが、実はWindows 7にはHTTPサーバーFTPサーバーなどの機能が標準で搭載されています。これらの機能は「インターネットインフォメーションサービス(IIS)」と呼ばれるソフトウェアにまとめられていますが、Windowsを標準的なオプションでインストールしただけではIISは有効になりません。そこで、コントロールパネルから、「プログラムと機能」→「Windowsの機能の有効化または無効化」を選び、「インターネットインフォメーションサービス」→「FTPサーバー」→「FTPサービス」にチェックを入れます。また、「インターネットインフォメーションサービス」→「Web管理ツール」→「IIS管理コンソール」にも必ずチェックを入れる必要があります。
Windowsの機能の有効化

[OK]をクリックしてしばらく待ちます(再起動が必要となる場合があります)。FTPサービスのインストールが完了したら、「コントロールパネル」→「システムとセキュリティ」→「管理ツール」→「IISマネージャー」を開きます。
管理ツール

IISマネージャが起動したところ。
IISマネージャ

左側ペインのサーバーアイコンを右クリックして、「FTP サイトの追加」を選択します。
FTPサイトの追加

FTPサイト名と、FTPで公開するフォルダ名を入力します。
サイト情報

「FTPサイトを自動的に開始する」にチェックを入れます。今回は家庭内LANのみなので、SSLは無しにしました。
バインドとSSLの設定

Anonymousでのアクセスを基本にしようと思うので、「匿名」にチェックを入れます。また、アクセス許可については「すべてのユーザー」で読み書きとも許可にしました。
認証及び承認の情報

以上でFTPサーバーの設定は完了です。LAN経由でFFFTPおよびWindowsのftpコマンドでAnonymous接続ができることを確認しました。次にDLNAサーバーの設定を行いますが、これにはWindows Media Player(WMP)のメディアストリーミング機能を使用します。前回の記事でも触れましたが、「ネットワークと共有センター」でストリーミングを有効にし、「ストリーミングの詳細設定」で既定ですべてのメディアを共有する設定にしておきます。
メディアストリーミングの設定

WMPのオプションでトランスコードの設定ができるようになっていますが、あまり触る必要はないように思いました。
トランスコード設定

以上の設定で、DLNAクライアントからアクセスできることを確認しました。トランスコードも動作しているようで、我が家のメディアファイルはすべてWMAなのですが、WMA非対応であるXperiaのWalkmanアプリでも再生が可能でした。最後に、仕上げとしてやっておけば便利な設定を挙げておきます。

1. USBドライブへのバックアップと「以前のバージョン」
RAID1を利用してはいますが、やはりユーザーの誤操作からデータを保護するためにはバックアップは必要でしょう。Windowsのrobocopyコマンドを利用して以下のようなバッチを作っておくと便利かと思います。
 robocopy f:\share\(フォルダ名1) g:\backup\(フォルダ名1) /MIR /LOG:(ログファイル名)
 robocopy f:\share\(フォルダ名2) g:\backup\(フォルダ名2) /MIR /LOG+:(ログファイル名)
    …
私はこのバッチをタスクスケジューラで週1回実行するように設定しました。また、「以前のバージョン」機能も併用するとよいでしょう。この機能を利用するには、「システムのプロパティ」→「システムの保護」で、対象ドライブを選択して「構成」をクリックし、「ファイルの以前のバージョンのみを復元する」を選択して使用ディスク容量を設定し、「OK」をクリックすれば設定できます。
システムの保護

2. シャットダウン用ショートカット
リモートデスクトップ接続ではスタートメニューからシャットダウンや再起動の操作ができませんので、shutdownコマンドのショートカットを作ってデスクトップに置いておくと便利です。
シャットダウンは shutdown /s /t 0 で、再起動は shutdown /r /t 0 でOKです。
shutdownコマンド

3. セキュリティソフトをインストール
サーバーという性格上、いろいろなファイルが持ち込まれてきますので、セキュリティソフトも忘れずにインストールしておきましょう。

以上でファイルサーバの設定はいったん完了です。あとはデジタル放送サーバー機能の設定が残っています(録画予約やネットワーク経由の視聴ができるようにする予定)が、これはまた機会を改めてやってみたいと思います。

WHSはなくなりましたが、小規模なサーバーならこれで充分ですね。

テーマ : 自作・改造
ジャンル : コンピュータ

tag : Windows7IISFTPDLNAサーバー

アクセスカウンタ
カレンダー
05 | 2023/06 | 07
- - - - 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 -
最新記事
最新コメント
リンク
カテゴリ
楽天お勧め商品
検索フォーム
Kyoroのつぶやき
FC2掲示板
ブロとも申請フォーム

この人とブロともになる

RSSリンクの表示