PSLブログ

ヨシナシゴトヲツヅリマス

Perl/CGI

Spreadsheet::ParseXLSXでval()についてしまうフリガナを除去する方法

Spreadsheet::XLSXにつづいてSpreadsheet::ParseXLSXでも同様の問題が出た。欧米圏ではIMEを使わないからこの問題が起きないので気づかないのだorz blog.psl.ne.jp

Perl+WWW::CurlでSendGridからメールを送ってみた(2)

前回の続き。 blog.psl.ne.jp

Perl+WWW::CurlでSendGridからメールを送ってみた(1)

さくらのVPSを借りていると、月25000通までSendGridが無料で使えるので、使わない手はない。 vps-news.sakura.ad.jp 先日のJSONデータの生成ではまった後、WWW::Curlではまり、SendGridのテンプレートではまり、やっと送信できるデモができた。 やりたいこと…

Perlでマルチバイト文字列を含むJSONデータを扱う(JSON.pm)

今さらはまったのでメモ。 JSONはPHPだと何にも考えずにjson_(en|de)codeで行ったり来たりできるので楽なのだが、Perlは、utf8の扱いが紛らわしい。

Perl Script Laboratoryは10/12に20周年を迎えました。

1996年10月12日に、「あきらのページ」としてスタートしたPerl Script Laboratoryは、最初は当時の個人のホームページでステータスだった、アクセスカウンタや掲示板、ゲストブックなどのCGIプログラムを無料で配布するサイトでした。今年でちょうど20年が経…

絶対パスと相対パス連結時に"../"を除去する方法

プログラムを置くディレクトリがScriptAliasで指定されたcgi-binのようなところで、プログラムが管理するファイルを直接参照用に通常ディレクトリに置くようなケースで、両者のディレクトリの差を相対パスで記述しておけばパスを自動的に作ってくれるように…

Windowsなperlでデスクトップのパスを取得する

これは便利。 use Win32::OLE; my $wsh = new Win32::OLE 'WScript.Shell'; my $desktop_path = $wsh->SpecialFolders('Desktop'); 今までは "$ENV{USERPROFILE}/Desktop" のようなことをしていたが、私のようにデスクトップをDドライブに移動していたりする…

Spreadsheet::XLSXでValの値についてしまうフリガナを除去

ExcelのワークシートをPerlで読み出してごにょごにょするプログラムを使っているだが、以前は98以前のバイナリを扱えるSpreadsheet::ParseExcelを使っていたが、さすがに古いので、同じ人がメインテナーをやっているSpreadsheet::XLSXを使っている。ところが…

YAPC::Asia Tokyo 2013体験記(9/20-21)

複数のブロガーのエントリーを通じて数年前から存在は知っていたYAPC::Asia、yusukebeさんのブログを読んだのをきっかけに、行ってみようかなという気になり、チケットを買って行ってみた。 [caption id="attachment_472" align="alignnone" width="300"] イ…

Windows-IISな環境でperlis.dllを使ってCGIを動かす

Unixな環境でテストしたCMSがクライアント先のWindows-IISな環境で動かずトラブルに。 IISは普段まったく扱っておらず、素人同然なのだが、とにかく収束させないとということでいろいろ調べた。

File::Findでfindコマンド相当のことをCGIでやる

sshで入れないサーバで、一定期間以内に更新されているファイルリストが欲しかったので作った。

WebminでPostfixの拡張アドレス設定

移転前のサーバでは、qmailを使っていて、.qmailに設定しておくと、basename-ext@example.com などとすると、extがなんであっても、basename@example.comにメールが届き、さらに、このメールをパイプでプログラムに渡す設定をすると、プログラム内でextの部…

PHPのコーディングでよく間違える件(1)

このブログは5ヶ月ぶりとなってしまった。いろいろ書きたかったけれど、夏前くらいから忙しくなってしまい、今は手が足りていない。スタッフが欲しいところなのだが、指示するにも結構手を取られるから忙しいときに人員を増やしても楽にはなりそうにないし、…

LWPで基本認証のかかったページを取得する方法

備忘録。 use LWP::UserAgent; use HTTP::Request; sub get_contents { # $url - 取得したいページのURL # $auth_id - 基本認証のID # $auth_passwd - 基本認証のパスワード my($url, $auth_id, $auth_passwd) = @_; my $req = HTTP::Request->new(GET => $u…

LWPモジュールで基本認証エリア内のページを取得する

LWP::Simpleモジュールでは無理なので。

SQLite

うかつだった。こんなものを知らなかったとは。

CKFinder

以前CKEditorのことを書いたが、画像などをアップロードして、同時に編集している文章の中に貼り付けたいとき、それを実現する機能は、CKEditor単体では無理で、CKFinderなるサーバアプリを別途インストールして使う必要があることがわかった。CKFinderは、C…

Drupal 6 on PHP4.3.9

DrupalなるCMSがあることを知り、動かしてみることにした。

audio/3gppなファイルをsoftbank携帯で保存不可にできない

長いタイトルを付けてしまったが、つまりはそういうことである。ここはできなかったことばかりをつづるコーナーになってしまいそうだが、現在はまっているのである。 無料試聴サイトを作る依頼があって、3キャリア対応しなければならないのだが、docomoとau…

proxyのトラブル

少し前の話。 以前に納品したシステムの焼き直しをあるエンドクライアントのネットワーク環境から使ってみたら、GWに立っているサーバが、パスに"cgi-bin"を含むURLのgetリクエストをキャッシュして、他のリクエストに対してキャッシュから返すという動作し…

Gitを使ってみようかなと

入門Git作者: 濱野純(Junio C Hamano)出版社/メーカー: 秀和システム発売日: 2009/09/19メディア: 単行本購入: 31人 クリック: 736回この商品を含むブログ (158件) を見る 今までCGIプログラムの版管理は超適当で、どこをいつ書き換えたかなんてのは細かく記…

textareaのカーソル位置に文字列挿入

jQueryを使う方法をほぼそのまま使わせていただきました。

encodeURIComponent()

javascriptでinput欄のメールアドレスをクエリーに付加してlocation.hrefでCGIにアクセスする処理を書いていたのだが、初めはescape()でURIエスケープしたつもりになっていたら、gmail.comのエイリアス(username+ext@gmail.com)のような"+"を含むアドレスの…

Encode.pmのその後

その後いろいろやってみて、ちょっとわかってきた。eucやjisに変換されなかった、丸数字や、IBM拡張文字は、euc/jisには存在しないようだ。だから、Encode.pmでは、その規格通り、マッピングしないという動作をしている。しかし、eucでもjisでも、Windowsな…

今頃Encode.pm

私か゛perlに出会った頃はperl4の時代で、レキシカル変数などなかったし(すべてグローバル)、CGIで日本語を扱うには、レスキューさんのサイトを参考にしていた。レスキューさんはMatt's Script Archiveのソースを参考にしているぽかった。私の初期のソースは…

Spreadsheet::WriteExcelをutf8で

新しい案件で、Windows+WebサーバでExcelファイルをPerlなCGIから書き出すニーズが出てきた。もし受注となれば、久しぶりにExcelファイルをこしらえて書き出していくことになる。Spreadsheet::WriteExcelモジュールを使えば、Perlのコーディングでファイルが…

IIS+ActivePerlの相対パス

私のサイトでは、基本的にUNIX系のサーバのみ想定して動作するものを公開しているが、つい先日私のお客さんから、「Windowsサーバで動かしたいが動くか」という確認を求められて、外部モジュールなどが使えるかをテストするcgiファイルを作り、サーバに置い…