プログラミング

foreach と map を比べてみた

perlの話です。文字列1と文字列2を比較して、文字列2に文字列1の文字が全て含まれているか確認する処理をperlで書いてる最中に、「foreachとmapのどちらで書いた方が早いのか」と急に気になったのでベンチマークして比較してみました。つまりこんなような処…

SMTP AUTHチェックスクリプトを書いてみた

ちょっとした理由で特定のメールサーバのSMTP AUTHが機能してるかを確認する必要が出てきたのでちょっと書いてみました。 半年くらい前に書いて以来Evernoteに入れて満足していたのですが、自分だけで保存しておくのはちょっともったいないくらい簡単にでき…

今日の小ネタ! (2) push()で配列を統合できる

今日の小ネタ! 「コレ多分出来るよね」って思ってやってみたら出来ちゃった!けど一発ネタすぎる!という内容を投げっぱなしで書いて終わるコーナーです。 今回は「push()って解説サイトとかではスカラを継ぎ足す方法しか書いてないけどリストも継ぎ足せる…

今日の小ネタ!(1) 特殊変数$nはスコープの影響を受ける

今日の小ネタ! コーディングしてて気がついたトリビア的な(知ってる人にはトリビアでもなんでもないけど)内容を唐突に書き殴って終わって行こうと思います! #!/usr/local/bin/perl use strict; my $val; my $matched1; my $matched2; $val = "hoge12345"…

ここ最近の私がやらかした極めてみっともない失敗を晒す(1) open()の成否をif()で確認しようとした

前々から「ブログでプログラムの話題に触れたらいつかはやっておかないといけないだろうなあと思っていた事をやってみようかと思い立って、ちょうどネタもあったし唐突にコーナーを始めてみることにしました。 世の中に手本となる記事は数あれど、これから僕…

Perlモジュールが入っているか調べる2つの簡単なやり方

Perlのモジュールがインストールされているかを調べる方法の中でも初心者向けのものを書き残しておきます。 Perlでスクリプトを書いているとよく自分が使おうとしているモジュールがインストールされているのか調べたくなる時がやってきます。 僕の知人にも…

"Bad fd number"について詳細に調査してみた

色々あって急に空き時間が出来たので、 "Bad fd number"の検索結果で訪れてくる方が以外に多い事もあって 折角なのでこの問題を詳細に調査してみることにしました。 さて、まずはこのメッセージを出しているのが一体誰なのかを確認してみましょう。 エラーが…

"syntax error: bad fd number"ってなんだ?

2009/09/19:追記:表題のエラーについて詳細に調査してみました。こちら ほっとんどプログラミングの話題を扱っていなかったので、たまにはプログラミングの話題でも。 サーバにインストールしているFFmpeg::CommandのバージョンをPorts経由でバージョンア…

もっと簡単なRSSの作成方法があった

以前RSSの作成方法としてXML::RSSとPlaggerを組み合わせる方法を記述したが、 実はこれよりももっと容易にフィードを作成・編集出来るモジュールの存在を発見してしまった。 XML::FeedPPを使えばRSS/ATOMフィードは簡単に作成できてしまうのだ。こんな便利な…

Perl5.8.9のsuidperlにバグがあるらしい

自宅サーバのハードウェアグレードアップをしたついでにFreeBSD7.1を新規インストールした。 FreeBSD7.1のPortsに載っかってるPerlは5.8.9だったのだが*1、 こいつをインストールした後suidperlを使っているスクリプトを走らせてみたところ suidperl needs (…

自作CGIを改造してポッドキャスト対応にする

表題の通り。以前趣味で作成した3gpやらそれ以外のCODECでエンコードされた動画を 別の形式に変換してダウンロードさせるスクリプトを作成したのだが、 今回はそれをポッドキャスト対応にすべく色々と試行錯誤を繰り返すことにした。方法としては幾つかある…

日記投稿CGIの続き

前回の投稿時に考えついていた事柄を一通り試行してみた。今回試行したのは はてな記法を一旦HTMLに変換した後文章の部分だけを抽出する方法 はてな記法を投稿したい文体の平文に変換する方法 の2つだ。どちらも基本コンセプトははてな記法を変換するという…

日記書き込み用のCGIを作ってみよう(模索中)

毎回日記を投降する際にmixiの日記とはてなダイアリーの両方に 同じ記事を投稿しているわけだが、これの作業がなかなかに面倒臭い。 はてなダイアリー側では部分的ではあるが「はてな記法」を使っているからだ。 【サーバ運用】のカテゴリに入るような記事で…

日本語ファイル名をHTTPで転送する手法を調査してみた

趣味で作成しているCGIでサーバ上に一時的に置いたファイルを 日本語名でDL出来るようにする必要があったため、色々と調べてみた。 結果、どうやらHTTPヘッダに Content-type: application/octet-stream Content-Disposition: inline; filename="日本語名(sj…

Xferlogのログパーサがあった件について

仕事中にPerlでApacheのaccess.logのログパーサを使っている最中にふと 「そういえばXferlogのログパーサはないもんかね」と思い立ち、 仕事中のリフレッシュも兼ねて検索したらやっぱりあった。 早速試してみようということで、portsからインストールしよう…

perlで組んだCGIでバッファのフラッシュが上手く行かない

どうやら年が明けたらしい。今年もよろしくお願いします。 まあそれはさておき、せっかくの休暇なので昨年中にやってきたことをおさらいしようと perlやらCやらを弄っている日々を過ごしていたが、タイトルにもあるように CGIでSTDOUTのバッファをフラッシュ…

デザインの勉強もした方がよいのかどうか

現在携わっている業務の中でCGIを組む機会が多い。 これ自体は別段難しい話ではないので*1困ってはいないのだが、 出来上がったインターフェイスのデザインに対して苦難する事が多い。 プログラムやサーバ運用に必要な技術の基礎は専門学校で習得したものの…

サニタイズ問題解決

昨日の続き。そういえばstring.hにstrstrっつー非常に便利な関数がある事を思い出したんで それを使って関数を組み直すことにした。いくつかの解説サイトや書籍を参考にしつつ、昨日作った関数からmemmoveのアイディアを頂きつつ void exec_sanitize(char *s…

C言語でいわゆるサニタイジングを行う(苦戦中)

色々あってCで書かれているCGIに対してサニタイジング処理をしなければ ならなくなってしまい、かなり苦戦中。Cに不慣れなことも手伝って今日は殆ど進行しなかった。 Perlなら sub sanitize { my $str = shift; $str =~ s/&/"&amp;"/g; $str =~ s/</"&gt;"/g; $str =~ s/>/"&lt;"/g;…

【プログラミング】自宅サーバのバックアップスクリプトを改変

以前組んでここのblogにも晒した自作のバックアップスクリプトですが、 改めて見直したところなんか色々と突っ込む所があったので (あとバグも発見されたので)全面的に手直しをすることにしました。 ちなみに仕様は・newsyslogで7日ローテーションとして設…

【プログラミング】C言語研修開始から7日目

仕事の都合でC言語に関する研修を開始してから今日で7日目です。 Perlと違ってあらゆることを細かく定義したり取り扱っていかないと いけない言語なので、まーーーーまどろっこしいこと(笑Perlを学び始めた頃にものの本で「Perlは簡単な言葉である」 という…