2011年11月25日金曜日

PHPでFTPアップロードする

PHPをcronで実行して、ロリポップのサーバーにFTPでファイルをアップロードする必要があって、その時に行ったPHPによるFTP処理の技術資料。

$connId = ftp_connect("ftp.aaa.com"); // 接続
ftp_login($connId, "user", "password"); // ユーザー名とパスワードでログイン
ftp_pasv($connId, true); // パッシブモードにする
ftp_chdir($connId, "upload"); // アップロード先のディレクトリに移動
ftp_put($connId, "filename", "/usr/local/filename", FTP_BINARY); // アップロード開始
ftp_close($connId); // FTP終了
こんな感じで一連の処理が行えます。
テキストファイルの場合は、ftp_putの第4引数に FTP_ASCII を指定します。
サーバーに既にファイルがあった場合は上書きされます。
ちなみにダウンロードは ftp_get です。

フリーソフトウェア、シェアウェアの公開方法

フリーソフトウェアやシェアウェアを作ったは良いが、次にどうやって公開するかが問題になる。
現在、これが簡単にできない世の中になっている。

順当なのは、Vectorに登録することだ。
Vectorは、そこそこ有名なサイトなので、作ったソフトウェアの宣伝になるし、ダウンロードする側に安心感を与えられる。
公開するのがシェアウェアなら、送金の代行もやってくれる。

ただ、Vectorはいざ使おうとすると不便な面もある。
ひとつは、登録時のチェックに日数がかかること。昔、ウィルス混入騒ぎがあったため、今はウィルス等のチェックが厳重に行われているからだと思うが、これに数日かかる。新規登録したときだけでなく、バージョンアップで差し替えるたびにチェックが行われる。
例えば、付属ドキュメントの記載に不正確な点があって、その部分をわずかに修正してアップロードしなおしただけでも、そのたびごとに公開まで待たされる。
また、紹介文の文字数や、紹介画像数に制限があるので、複雑なソフトウェアでは十分な紹介ができないかもしれない。
シェアウェアでは、シェアレジに登録することで代金支払いを仲介してくれるのだが、そのために郵送で書類のやり取りが必要なので手軽にすぐ始めるとはいかない。ソフトウェアの登録とは異なるシェアレジ用のアカウントが発行され、アカウント管理が二重になるのも少々煩雑に感じてしまう。
そして、シェアレジの手数料は結構重い。作者と購入者、両方に手数料がかかる。商品代金1,000円だとしても購入者は手数料と消費税で1,155円を支払い、作者側も別途手数料が引かれて、受け取るのは892円になる。
実質、購入者は作者が受け取る金額に30%上乗せした金額を支払うことになる。

Vectorを使うことで、自分でウェブサイトを用意する必要がなく、ほとんどほったらかしで公開できる。
Vectorの欠点は欠点として、利点を活かして、有効に利用させていただくのが一番賢い。

次に自分でウェブサイトを作る方法がある。
無料のホームページサービスの中には容量1GBとかと謳っているところもあって、問題なく使えそうに見えるが、実際は1ファイルのサイズやアップロードできるファイルの種類、HTMLファイルとデータファイルの比率、転送量等に制限がある。
実際のところ無料ホームページスペースでソフトウェアのダウンロード環境を作るのは難しい。
ダウンロードはVectorへリンクする方法で、無料ホームページではソフトウェアの紹介を詳細にするという活用はできる。
また、シェアウェアならPayPalや銀行振込等、別の支払い方法を紹介したり用意しておくためにも使えそうだ。

シェアウェアで、そこそこ売れるのなら有料のホームページスペースを使っても良いが、シェアウェアはほとんど売れるものではないし、フリーソフトウェアだったら収益は0。広告を掲載しても良いが、ある程度アクセスを集められるものでなければ、ホームページスペースの費用をまかなえないかもしれない。寄付というのも成立しないのは目に見えている。

ソフトウェアを作っても公開するのすら難しい。

Googleのサービスが無料なのは本当に良いことなのか

ずいぶん前に読んで、興味深かったブログ記事「Googleがネットを無料化する目的
Googleが無料でサービスやアプリケーションソフトウェアを提供するのは、広告スペースを広げるためであるという見方だ。
特に「ユーザは目先の利益しか考えないので…」という表現は、私も同じように考えそうなので、おもしろく感じた。そして、この記事に興味を持った本質的なところだと思う。

私は、このところGoogleには、以前のマイクロソフトのように独占による問題が頭をよぎる。
というのは、最近Googleのサービスを色々(Gmail、Analytics等)使っているとIEではレイアウトが崩れたりして、きれいに表示されないことが多いのだ。
Chromeを使え、ということなのだろうが、Chromeでは文字化けして、まだうまく表示されないウェブサイトがあったりするのと、シェアという意味ではまだまだIEが多いので、自分のウェブサイトを日常的に確認できるためにデフォルトブラウザをIEにしておきたいという事情がある。
Googleのサービスは優秀で、なにより無料で使える。だから使ってしまう。そしてウェブブラウザもChromeに変えざるを得なくなってくる。Googleの思う壺だ。

本来、ウェブサイトのコンテンツもアプリケーションソフトウェアも、制作するのに手間や費用がかかるはずである。にも係わらずインターネットでは無料が当たり前のようになっている。
コストを回収するには一見無料に見える広告でしか成立しない世界になってしまっている。しかし、広告は収益の効率があまりよくない。
有料にすれば、見向きもされないし、無料でやるには、儲からない広告でやるしかない。
コンテンツ提供者とユーザーの間に立つGoogleが中間搾取することで、コンテンツ提供者とユーザーは余計な費用を支払う構造になっている。
Googleの収益は、自然に湧いたものではない。どこかから生まれたものだ。それは突き詰めればユーザーからだ。

誰でも無料の方がありがたい。
だが「ただほど高いものはない」
よく裏を考えておかないと、実は大損をすることもある。

しかし、Googleが悪者と決め付けるつもりはない。広告代理店も価値あるサービスのひとつだ。
むしろ私はいつもGoogleのお世話になっている。このブログもGoogleのbloggerを使っているし。

元記事「Googleがネットを無料化する目的」に興味を引かれた本質や、こうした文章を書いているのは、何が正しいか間違っているかを言いたいのではない。これを考えることで何かを変えるつもりもない。本能や目先の利益だけではなく、元記事の筆者のように広い視野を持っておきたいということである。

lsのディレクトリ名が暗い青色で読めない

linuxのコマンドラインでlsコマンドを打つと、ディレクトリ名等の文字が色分けされて表示されるが、ディレクトリ名が暗い青色で表示されて、よく見えない。
顔を近づけて見るとなんとか読めるが、不便なので色を変更したい。

/etc/DIR_COLORS をホームディレクトリにコピーする。
# cd
# cp /etc/DIR_COLORS .dir_colors

次にコピーしたファイルを編集する。
# vi .dir_colors

以下の行を編集する。
DIR 01:34 # directory

例えば下のように 34→44に変更する。44は青色の反転表示。
色の種類はすぐ上のコメントに英語で書かれている。
DIR 01:44 # directory

変更を反映するために、evalコマンド実行。
# eval `dircolors .dir_colors -b`

このように読みやすくなった。

.dir_colorsファイルの設定しだいで、他にもファイルの種類や、zip、jpg等の拡張子で色分けできたり、太字、ブリンク等の修飾も可能。