Scrapdiary

DesigningとEngineeringの架け橋

Perl

今さらですがJcodeですっきり見やすくなりました

久しぶりに仕事でPerlを書いた。いったい何年間使ってるんだ?っていうくらいずっとメンテナンスしてきたフォームの受付CGI。今さらですが一応strictとwarningsでチェックをかけて細かいところの作法を手直ししたのと、Jcodeモジュールを使って文字コードの…

Net::Twitter::Liteへの移行

なぜかCPAN経由でインストールできなかったNet::Twitterの3系が3.05000にマイナーバージョンが上がり、自分の環境でもインストールできた。 しかし3系になってコーディングスタイルも結構変わったと見受けられるので、以前のコードを再利用するためにNet::Tw…

モジュール&Swatchの手動インストール + ログローテートへの対応

本環境ではPerlの構成が自分にとっては不規則だったため、どうにもSwatchが言うことを聞いてくれない。要は正確にPATHが通っていないとう状況だった。先日調べた結果を元に何とかPATHを通すことが出来た。 root、sudoもないため、当初は足りないモジュールを…

UNIX/Linuxでの環境変数

先日swatchのインストールを試行錯誤する中、オペレーションに関してどうにも基本のきの字がなっていないために現状で可能なことなのか上位の権限がないと出来ないことなのかが判断できなかった。環境変数とその設定方法について自分用にまとめ。 $PATH コマ…

経済指標・統計情報を日本語でつぶやくtwitter botの開発

経済指標とか統計情報の結果発表を聞き逃してばかり Podcastで視聴している聴く日経で「本日発表の指標・統計」という話題がありますが、普段の生活のなかでなかなか意識してないことが多いこの情報。株などもろもろの諸取引してる人にとっては必須なんだろ…

shell scriptとリスタート設定でSwatchを動かす

先日検証したSwatch、実際のログデータのファイルは日毎に「debug_20090722.log」のような形で生成されているので、通常のSwatchの起動方法だとファイル名の変更に対応できない。 そこで最初に考えたのがSwatchの起動処理を記述したshell scriptをcronで毎0…

Net::Twitterが3になりCPAN経由でインストールできない件

Net::Twitterが大幅バージョンアップされたようで、依存moduleの数がかなり多くなってるようです。CPANにてインストールすると途中で、恐らくMoose関連の依存moduleをインストール中に何故かfailureとう文字が・・・そしてインストール失敗。CPANで自動化し…

ログ監視にSwatchの導入を検討

以前といってもだいぶ前だけど、スクラッチで作ったアプリのエラーログをハンドリングできず問題になったことがあった。かといっても独自でsyslogとか立てられないので、Perlで書かれたログ監視アプリのSwatch(Simple WATCHer)というツールを使おうかと検…

勉強会の副産物?MobaSiFについて

先日の勉強会イベントで配られたDeNAさんのPR資料の中にWEB+DBに掲載された「MobaSiF(Moba Simple Framework)」の紹介記事があった。Modernなモバイル開発から遠ざかっていたので、なにかのきっかけになればと読んでみると、かゆいところをカバーしてくれ…

例外(Exception)って何だろう?

いまいち理解できてなかったeval 例外(exception)を捕捉しようてevalを使ってみたけど、イマイチevalがわからない。 Perl5編 第40章 例外と eval 先日書いたDate::Simpleを使ったコードで、あり得ない日付を与えるとdieするようにしておいた部分を改良。上…

ロジカルに考えるとはこういうことか

昨日に引続きPerl。あのままでは年またぎでうまく比較できないので、ちょっと考え方を変えてみた。 未来の日付は基本あり得ない(想定しないもの)とする もし未来の日付だったら過去と見なし、YYYYを一年前の値を再セット その上で本日と比較して差分をみる…

日付を比較・評価する - Date::Simple

ある日付(指定日)から本日までが1週間が経過しているかどうかを確認したい。指定日で使用されるのは「月日(MMDD)」のみの値という条件。年をまたぐことを考慮して、どう比較・評価すればいいのかを考えてみた。 とりあえず比較してみる 日付データはCPANの…

未だに'require jcode.pl;'してるのはさすがにどうかと思った件

4. require jcode.pl;日本語環境限定ではありますが。さすがに旧すぎる上、Unicode未対応という21世紀的に致命的な機能不足が。use Encode;してくだちいm(_._)m 404 Blog Not Found: perl - もうやらなくてもいい昔のコーディングテクニック そういえば会社…

PHPのphpinfo();のように情報を出力したい

サーバにshellで潜れず、(S)FTPしか許可されていないような場合に情報を出力することが出来ればと。そのサーバがどんな仕様か不明なのでモジュール関連は一切何も使わないというのがコンセプト。perlinfo.cgi #!/usr/bin/perl use strict; use warnings; my …

Net::Twitterで作った簡易CGIを携帯向けに改良してみた

表示と実処理を分けた方がいいかなと思って作ったけど、実際その必要ないんじゃないかと思い直す。それにタイムラインとか見れた方が便利かなと思って改造してみた。オブジェクト指向な書き方を考えてたけど、今の自分のレベルじゃ意味がなさそうだったので…

Net::Twitterでポスト専用簡易CGI

先日CPANでNet::Twitterをインストールしたので、ポスト専用の超絶簡易CGIを作ってみた。しかも自分専用。モバツイッターなどの投稿サービスがあるけれど*1、せっかくインストールしたモジュールを試しに使ってみたかったので、恐らく車輪を再発明でしょうが…

Shibuya.pmに参加してきました

本日18時30分からグラントウキョウサウスタワー23階で行われたShibuya Perl Mongersテクニカルトーク#11に参加しました。15分ほど遅れて会場入り。弾さんのセッションを少しだけ聴いて、そこから終わりまで内容はほぼ理解不能な領域。若干ネタに笑えたくらい…

CGIで稼動させる時にPathを自動取得する

開発・テスト機と本番機でユーザやディレクトリ構造が違う場合、設定値を書き直すのが面倒だったので、無い知識をフル活用。DocumentRootの上位ディレクトリにアプリの実体ファイルを置くという設計。 /home/user/public_html/hoge.cgi /home/user/my_app/fo…

コマンドラインからのCPAN操作

CPANで良く忘れる設定の確認と変更。基本、初回立ち上げ時のconfigurationでドギマギするんだけど、それはまぁ英語がわからんということでw ところでurllistにあるホストがたまに死んでるだけど、あれはどうなんだろうか?有志で提供しているんだから仕方な…

『モダンPerl入門』を読んだ〜やっぱりPerl初心者には難しい〜

実務での開発経験も言語知識レベルもまだまだぺーぺーですが、「モダン」と呼ばれる手法に興味があったので『モダンPerl入門』を手にとってみました。 オブジェクト指向とCPANをフル活用した近代Perlの開発手法 所感ですが、やっぱり初心者には難しいですね…

Perlの普及を目指すJPA(Japan Perl Association)が始動

Perlは古い? イメージ復権へ普及団体「JPA」始動、技術者レベル底上げへ - ITmedia News昨日4月8日から始動との事です。理事は「モダンPerl入門」の著者である牧大輔氏。協賛にはライブドアやミクシィ、ディー・エヌ・エーをはじめ有名企業が名を連ねている…