2008-03-01から1ヶ月間の記事一覧

メールで複数ファイルを同時送信する際に確認する仕様

連載 : インターネット・プロトコル詳説 MIME(Multipurpose Internet Mail Extensions)〜前編 MIME(Multipurpose Internet Mail Extensions)〜後編 MIME(Multipurpose Internet Mail Extensions)〜後編に、複数ファイルを同時送信するマルチパート・メールに…

メールヘッダの仕様について

わかりやすく記載されているページをリンクする。 Mew ニュースレター メールと日本語 ヘッダあれこれ MIME の基礎 間違いだらけのメールリーダ 暗号メールと電子署名 ASCII

Ruby でメールを送る前に POP before SMTP を行う

Google で検索した結果上位をメモしておく。 net/smtp - メールの送信 net/pop - auth_only(address, port = 110, account, password)を確認

Net::SMTP の明示的なセッションの終了

セッションを終了するメールを送ったら Net::SMTP#finish を呼んでセッションを終了しなければいけません。 File のように GC 時に勝手に close されることもありません。いろいろなところで finish がないソースコードの例を見掛けますが、すべて誤りです。…

Net::SMTP でメールを送る

TMail をあきらめて、原始的に Net::SMTP を利用してメールを送る。下記のページを参考にして実装してみる。 RubyでMailを 簡単なMail送信スクリプト メールの送信テストは終えたので、次の課題は、 POP before SMTP の実装 添付ファイルを行う

fork とは

OS

fork を知らなかったので、メモをしておく。 fork(フォーク)は、UNIX系システムコールのひとつで、プロセスのコピーを生成するものである。新たに作り出されたプロセスを子プロセス、fork()を呼び出したプロセスを親プロセスと呼ぶ。また、マルチスレッド…

xargs とパイプの処理

スクリプト内で、コマンドを実行した場合のパフォーマンスについて書かれたブログがあったような気がして探した。 該当するブログが見つかったが、自分の思っていた内容ではなかった。しかし、引数を渡して処理を行うことに参考になるのかもしれないと思い、…

setup.rb の設定を変更してみる

% pwd /home/littlebuddha/local/lib/ruby/gem/gems/tmail-1.2.2 % ruby setup.rb config --prefix=$HOME/local prefix /home/littlebangkok/local bindir /home/littlebangkok/local/bin libdir /home/littlebangkok/local/lib datadir /home/littlebangkok…

さくらインターネットにインストールしたい Tmail の setup.rb の設定を見てみる

show 現在の設定を表示する setup.rb ユーザマニュアル % pwd /home/littlebuddha/local/lib/ruby/gem/gems/tmail-1.2.2 % ruby setup.rb show prefix /usr/local bindir /usr/local/bin libdir /usr/local/lib datadir /usr/local/share mandir /usr/local/…

setup.rb のマニュアルを読んでみる

setup.rb/install.rb は Ruby プログラムのパッケージを対象としたコマンドラインベースのインストーラです。 install.rb は単体パッケージ用のインストーラです。ひとまとまりの Ruby スクリプト、拡張モジュール、コマンド、データをインストールできます…

さくらインターネットに Tmail をインストールすると失敗する

すでにさくらインターネットのサーバーには、$HOME ディレクトリ下に gem をインストールしている。 しかし、gem はシステム側のディレクトリにインストールを試みて失敗しているようだ。 % gem install tmail Need to update 11 gems from http://gems.ruby…

wget で URLエンコードされた文字列が含まれる URL の対処方法

あとで、考える。 GNU Wget 1.11 Manual wget の使い方で質問です。ダウンロードしたいファイル名に日本語が… 手っ取り早い解決法に流された 手間ひまかかる解決方法もいいけれど、wget のオプションで手っ取り早く解決する方法を選ぶ。 URI の一意性を保て…

文字列の連結とそのコスト

結論は変数を含む複数の文字列の結合に関しては式展開を使うのがよいです。 文字列の連結 文字列の連結、その2

zipコマンドでディレクトリを圧縮する

ぜんぜん覚えられないので、備忘録。 % ls -l total 96 drwxr-xr-x 4 littlebuddha users 512 3 21 11:58 unarchived_dir -rw-r--r-- 1 littlebuddha users 92472 3 21 11:58 log.txt drwxr-xr-x 2 littlebuddha users 512 3 21 11:58 archived_dir % zip -r…

URL をパースする

参考 : URI (Uniform Resource Identifier) サポートライブラリ % irb irb(main):002:0> require uri => true irb(main):004:0> url = URI.parse("http://www.example.co.jp/dir/test.php?q=3") => #<URI::HTTP:0x155cfc0 URL:http://www.example.co.jp/dir/test.php?q=3> irb(main):006:0> url.scheme => "http" irb(main):007:0></uri::http:0x155cfc0>…

wget を利用して POST メソッドを利用する

例文。 % wget --post-data 'user=fizz&password=bazz' https://www.example.com/ 上記の例文とは異なる記述を見つけたので、要調査。 $ wget --post-data '<thread thread="1181906758" version="20061206" res_from="0" />' http://msg22.nicovideo.jp/api/ wget で POST 追記 リンク先の管理者の方から、上記例文は動作し</thread>…

wget のオプション

% wget -h GNU Wget 1.10.2, 非対話的ネットワーク転送ソフト 使い方: wget [オプション]... [URL]... 長いオプションで不可欠な引数は短いオプションでも不可欠です。 スタートアップ: -V, --version バージョン情報を表示して終了する -h, --help このヘル…

サンプルコード

require 'open-uri' open('http://www.example.com/', { :method => :post, :body => 'a=123&b=456', 'User-Agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12', 'Accept' => 'text/xml,application/x…

オリジナルのファイルを取り戻す

% cp open-uri.rb ~/ % sudo patch open-uri.rb ~/diff-1.8 patching file open-uri.rb Reversed (or previously applied) patch detected! Assume -R? [n] y % mv open-uri.rb.orig open-uri-post.rb パッチを戻した後にできた open-uri.rb.orig がパッチを…

open-uri に post メソッドを使えるようにパッチを当てる

参考にしたのは、下記のサイト。 kitajさんの記事で知ったopen-uri-post.rbが素敵です。 ちょっとコードを足せば機能を補充できる動的言語ならではの解決策。 でも、RESTなWeb APIをペシペシ叩きたくなって、PUTやらDELETEやらHEADやらをサポートしようと改…

YAML にコメントを挿入する

コメント 「#」から行末までがコメントになります。範囲コメントはありません。 # コメント行 # コメント行 - aaa - bbb # これもコメント行 - ccc なお、「#」は「\#」のようにバックスラッシュでエスケープできます。

svn+ssh で新しいレポジトリを作成する

% mkdir ~/myproject % cd myproject % mkdir trunk branches tags % ssh -l username myserver.net username@myserver.net s password: % mkdir -p ~/works/repos/ % svnadmin create /home/username/works/repos/myproject % exit % cd ~/myproject % svn …

古いバージョンの Rails でプロジェクトを作成する

いつも忘れてしまうので、備忘録として記録。 % rails _1.2.6_ myproject --database=mysql

? の特殊な使い方

(?= ) 先読み(lookahead)。パターンによる位置指定(幅を持たない) (?=re1)re2 という表現は、re1 と re2 両方にマッチするものにマッチする正規表現です。 re1(?=re2) という表現は、後に re2 とマッチする文字列が続く、正規表現 re1 です。 p /foo(?=bar)/…

全角文字に挟まれた半角スペースを削除するには?

全角文字に挟まれた半角スペースを削除するには? 36618 sinara blade こんな感じでどうかな。 str.gsub!(/([^ ]) +(?=([^ ]))/) { $1.size > 1 && $2.size > 1 ? $1 : $& } 36628 sinara blade おお、なるほど。R 以外の一文字というは (?!R). と書けるとい…

スペースを除く空白にマッチさせる

\s 空白文字。[ \t\n\r\f] と同じ

改行を除く任意の 1 文字にマッチさせる

. 改行を除く任意の 1 文字にマッチします。正規表現オプション m (複数行モード。正規表現リテラルを参照)では、改行を含む任意の 1 文字にマッチします。 多バイト文字に対応した正規表現では、その 1 文字(1 バイトでなく)とマッチします。 よく使う用例 :…

マッチ対象にせずにグループ化させる

(?: ) 後方参照を伴わないグループ化。つまり \1、\2 (あるいは $1、$2)などの対象にはならず、単純なグループ化の用途で使用します。 /(abc)/ =~ "abc" p $1 => "abc" /(?:abc)/ =~ "abc" p $1 => nil

YAMLメモ - 配列とハッシュをお互いにネストさせる

プログラマーのための YAML 入門 (初級編) 基本的な書き方 - 配列とハッシュのネスト 配列とハッシュはお互いにネストさせることができます。 次の例は、配列の中にハッシュをネストさせる例です。 - name: Hanako email: flower@mail.com - name: Sumire em…