ふそうごむ。by扶桑ゴム産業

扶桑ゴム産業の最新情報とうぇぶますたあ「TKYK」の個人的日記。

プログラミング

PDFをPerlで生成する時の苦労話

もうちょっとでeカットシステムを公開できそうなので、それにまつわる苦労話でも書いてみよう。今回の要求仕様の一つに、「見積もりPDFを生成してユーザーが印刷したり出来るようにする」というものがあった。PDFは最初外注先に一任しようと思っていたのだ…

あら、いつの間にかSearchMashが終わってるじゃないですか…

グリーンページのサイト検索の裏であくせく働いてくれていたGoogle謹製の実験サイト「SearchMash」がいつの間にかサービス終了していた。うわぁ、それでエラーが…。ここのJSONも使えなくなった今、どこに向かえばいいのか…とほほとりあえずほとんどはクロー…

漢数字をアラビア数字にスマートに変換する

Yu君から「漢数字とアラビア数字の相互変換」のお題をもらう。久々にPerlをいじくったなって感じ。調べたらモジュール(Lingua::JA::Numbers)が存在していて、変換自体は簡単にできる。しかし、文章中から漢数字を抽出することは比較的敷居が高い。 最初正…

サイボウズ「メールワイズ」の添付ファイル名について

Mail::Senderによるメール送信も何とか出来るようになってきたが、日本語ファイル名による添付メールを送信する際、 Content-type: text/plain; name="1190945591_18426.txt" Content-transfer-encoding: Base64 Content-disposition: attachment; filename=…

Mail::SenderのFrom欄に日本語があると送信できなかったりする件

お手軽メール送信モジュールMail::SenderのFrom欄にて、日本語文字列が長いとエラーになってしまう件。色々やってなかなか分からなかったがようやく解けた。理由は、「改行」にあった。 my $sender = new Mail::Sender{ ... debug=> '/webroot/debug-mail.tx…

CGIとmod_perlの動作の違いに関して

CGIとmod_perlの動作の違いに関して。 CGIプログラミング p458~460による言葉を引用すれば、 コードは一度にコンパイルされキャッシュされます。そのため、スクリプトのボディにあるレキシカル変数がサブルーチンの中でアクセスされるとクロージャが作成さ…

Cache::FileCacheでキャッシュ

前回のGoogle検索結果取得ルーチンにキャッシュ機能を追加してみた。 use Cache::FileCache; my $cache = new Cache::FileCache( ¥%cache_opt ); -- my $google_response = $cache->get($google_json_url); # キャッシュを呼んでみる if (!$google_response)…

Google SOAP APIが終わった今…次なるAPIはJSON?!

SOAPが終わって見捨てられて悲しくって涙ふきふきしてる場合じゃない。 ということで、代替策を考えてみた。一つはYahoo!検索API。もひとつはGoogle直取得。前者は早速やってみた。 んー、結構便利に出来てるし、しかも割と簡単に利用できるのは有り難い。で…

Google SOAP API、終わっていた!?

気づいたら、いつの間にかGoogleのSOAP利用の検索APIが終了していた。今作っているβ検索に、と思っていたのに…。気づくの遅すぎ~。 ということは、代替策となるのは…

ちょっとだけMeCabチューン

とりあえずインストールしていたMeCabだったが、バグ?もありありで、なんか意欲が失せていたのだが、最近0.94にバージョンアップして、各種バグFixも行なわれたようなので、早速ユーザー辞書をいじってみた。 context_id.cpp(88) [it != left_.end()] canno…

CDBIで論理削除

って出来ないんですかねぇ…(検索とかで探しておられた方、ごめん) @items = item->search_like(name=> 'ipod', delete_flag => 0) みたいなことしてもいいのですが、リレーション張っているとその先の…ということもあるし、何とも具合が悪いです。もっと簡…

Class::DBIで多対多リレーションシップ

商品とグループの関係は、1つの商品から見れば幾つかのグループに属し、グループから見れば、そのグループに幾つかの商品が属している。 いわゆる多対多リレーションシップをどうやったらClass::DBI(CDBI)で表現できるのか?ということで小一時間。 いい例を…

Class::DBIカップリングうぃずTT

「わけわからん」といわれながら、またわけわからんこと書いておきます(笑) Class::DBIすごいです。そして、TT(Template Toolkit)による連携も素晴らしいです。データベースを操作するコードのしやすさにはびっくり(でも、まだ20%位しか理解できていませ…

forとforeachって同じだったのか?!

Perlベストプラクティス Damian Conway Perlベストプラクティスを最近買って読んでいたら、当たり前のことが分かっていなかった…。Perlで普段よく使うforとforeachを当然のことながら使い分けてました。 for (my $i = 1 ; $i foreach (@item) { print $_; } …

ハイフン記号とマイナス記号ってそれぞれあったのか!!

Linuxから、Windowsで動いているSQL Serverに接続する実験を続けているときに驚愕の事実を知ってしまった。 と言っても、知っている人は「なーんだ」レベルの事でしょうが… 日本語入力にATOKを愛用しているので気づかなかったが、住所の番地を入力するときに…

ようやくMeCabに

use MeCab; を実現するために、ようやく重い腰を上げて(?)MeCabをインストール。 試しに通販商品検索に組み込んでみました。チューンしていないので?な分かち書きもあったりする…。分かち書きは分かち書きでkakasiに任せた方がいいのかな…?

メールアドレスの存在確認をモジュールで。

お問い合わせや購入のメールがお客様のうっかり書き間違いで届かないのを少しでも防ぐため、ちょこっとプログラムを改善した。サーバが存在しているかをチェック(DNSだけだから、正確にはメールアドレスではないんだけど)するので、これによりミスも防げると…

Perl IDE(統合開発環境)-Eclipse+EPIC

Perlプログラミングは現在テキストエディタで書いている。軽くて便利なのだが、全体を容易に見渡し、文法ミスをなくすことができるVBのエディタのような開発環境があればなあ…と思っていたのだが、例のFedoraCoreの参考書籍を読んでいたら、「Eclipse」とい…

0.8 ≠ 0.8 ?

MySQLでいろいろやっている途中、不思議な現象に。 データベースに格納されている数値は「0.8」。 比較したい数値も、「0.8」。 でも、SQLで比較しても引っかかってこない。なぜ… float型が問題?浮動小数点はあんまり好きではないけど… 調べたところ、「や…

MySQLへのODBCによる接続(とWindows側からのアクセス)

ローカルウェブサーバで動かしている、Linux+MySQLサーバ。これをWindows側からアクセスできたらなぁ…とODBCドライバを入れてみたものの、うまくいかず。しばらくほったらかしになっていたが、ようやく原因が分かった。初期状態ではlocalhostからの接続のみ…

MySQL速っ

MySQLでの作り方がだんだん分かってきた(ような気がする)。今のサイトは恥ずかしながらCSV形式の処理なのでどうやっても遅くなりがちであるが、やはり餅は餅屋。試しにMySQLデータベースにて5万件のデータを検索、表示してみた。 「処理時間:0.0017秒」(…

MySQL、PHP、PHPMyAdmin、DBD::mysql、GDインストールで疲れタ…

TurboLinuxFUJIの運用も大分軌道に乗ってきた。が、しかし。 ローカルでのテスト用とはいえ、ウェブサーバ用途だからそれなりに必要なソフトウェアをインストールする必要がある。FUJIは元々デスクトップ用途だから、入っているもんだと思ったら実はなかった…

Windowsプロセスに残ったPerlプログラムを終了させる(ゾンビプロセス)

ローカルサーバで使っているApacheウェブサーバの挙動が異常に重いので、はてどうしたのかと思ってWindowsタスクマネージャを開いたら、「perl.exe」の山・山・山。これがほぼ100%の割合でCPUパワーを占拠していた。では、と思って強制終了しようとするがう…

オブジェクト指向プログラミング始める。

今まで逃げ続けていたオブジェクト指向。本やウェブページによる解説、様々なサンプルなどを読み進め、ようやく(遅い?)テストプログラムを書き始めた。今回は計算機を作っている。 といっても、"普通の"計算機ではなく、特殊用途のものではあるが… packag…

『﨑』『鄧』『髙』のメールでの文字化け

メールでは「﨑」「鄧」「髙」が文字化けする。 Unicodeにすれば問題ないが、メールではいまだISO-2022-JP(JISコード)が主流であろうから、UTF-8(Unicode)ではちょっと心配であったりする。 気になったので、ここにメモ代わりに書いておこうと思う。 メール…

“あまりに専念すると疲れる”

Amazonから届いた「Perlプログラミング救命病棟」と、「Perl/CGI職人気質」を読んでいた。Perlプログラムに関して知らなかったこと、カイゼンすべきことが色々分かって本当にためになった。use strict;が何を意味するのか、これが分かるだけでも全然違ってく…

SOAP(ウェブサービス)事始め

社内システムを組んでいるプログラマが、社外向けにSOAPを使ってみないかと言った。SOAP。XMLベースのデータをやりとりしあう仕組み。「できること」を考えると魅力的ではあるんだけど、学ぶことが多すぎ…。とりあえず、Google Web APIsを使ったサンプルを動…

正規表現のメモ

¥Q は ¥E までの正規表現メタ文字をエスケープ処理します。カッコ、アスタリスク( * )、ドット( . )などのメタ文字を、リテラルとして解釈させたいときに有効・・・(smart) /¥Qfusougomu.co.jp/ # fusougomu.co.jpにマッチ 拡張構文の一覧 ■ (?# コメント) …

「オブジェクト指向」、やっぱり必須か…

昨日の「分かち書き」ですが、急ぎ働きは良くないねぇ…しっかりミスってました。NOT検索のための「-」が上手く働かない弊害が。「防振 -NR」としたらNR(天然ゴム)でない防振ゴムを探すところが、「防振 - NR」となってしまい、ヘンテコな結果になってしま…

Perlプログラマのレベルが分かるらしい。

今日は、Perlにおけるオブジェクトプログラミングについて調べてみた。というか、見ても意味の分からないソースだと「もータイヘン!」ですので、早め(?)に手を打っておかねば。 探していたら、こんなものも掘り出しました。 「Perlプログラマのレベル10」と…