総合格闘技のストイックな練習や地味な試合の駆け引きなど、この2巻から俄然面白くなってきました。SFは寧ろ足枷だったのかと思うほど、やはり基本的に漫画が巧いんですね。アナーキーな展開は無いですがとても丁寧な作りで続きが楽しみです。

1巻で読むのを辞めてた人は勿体無いですよ!お勧め!

Unemployed

今年もコイツの季節だぜ。

「絶対働きたくないでござる!」

WordPressにはContact Form 7というお問い合わせフォームが簡単に出来るプラグインがあるそうです。

しかし、さくらインターネットのスタンダードプランの様な共有SSLを使っている場合はformのactionが別のURLを指す必要があるので動きません。PHPでベタにお問い合わせフォームの作成を依頼されたんですが、面倒なのでContact Form 7を修正してWordPress本体とは別のURLで動くようにしました。

% diff wp-content/plugins/contact-form-7/settings.php{,.org}
115c115
<       return (string) 'https://secure1111.sakura.ne.jp/example.com'.$wpcf7_request_uri;
---
>       return (string) $wpcf7_request_uri;

多分、WebサーバーがURLを書き換えているので環境変数から現在のREQUEST_URIが取れない。仕方なくベタにURLを書きました。javascriptでfromのactionを書き換えれば汎用的になりそうですがそれはキモイのでこれでいいや。

参照:Contact Form 7: WordPress のお問い合わせフォームプラグイン。シンプル、でも柔軟。

Yahoo!から配信されてくるメールを配信停止処理したら・・・

Yahoo!デリバー

5営業日?人力?

プログラミング言語 Ruby
まつもと ゆきひろ David Flanagan
オライリージャパン
売り上げランキング: 65705

まだ読み途中ですが、知らなかった事が結構ありますな。

4.5.3 属性と配列要素への代入

[]=メソッドに複数の引数を渡せるとは知らなかった。

class Foo
def []=(x, y, z)
puts x + y + z
end
end
% irb -r foo.rb
>> foo = Foo.new
=> #<Foo:0x1a10b34>
>> foo[1,2] = 3
6
=> 3

6の出力は分かるとして返値が3なのは何でなんだろう?

2010年02月24日追記:

bar = foo[1,2] = 3

こういう時のためですね、多分。

E-mobileのH11TからiPhoneへのデータ移行メモ。

連絡先

携帯マスターNX3 for EMOBILEとH11T用の最新ドライバーを入れてCSVファイルで連絡先をエクスポート。(Mac上のVirtualBox上のWindowsXPでは端末からのデータ転送が上手く行かなかったのでWindowsXPを入れたx61を使いました。)

Gmailの連絡先をCSVファイルでエクスポートし、上記のCSVとマージしてGmailに再度インポート。Gmailの連絡先は複数の連絡先を一つの連絡先にマージ出来るので整理。

メール

H11Tで"メール > 送受信メール > メニュー > エクスポート > 全件 > 本体"とする。"設定 > 外部接続 > USB > 接続設定 > マスストレージモード"としてPCと接続するとリムーバブルディスクとして認識される。

D:¥PRIVATE¥EMOBILE¥LIBRARY¥OTHER_UNKNOWN

上記のフォルダにメールが.vmgファイルとして保存されているので適当なスクリプトかツールで.emlに拡張子を一括置換する。Outlook ExpressかWindows Live MailでGmailにimap接続して(後者だとgmail.comドメインのアドレスを入れるだけでサーバーアドレスその他が自動的にGmailの物になるので楽)、.emlファイルをドラッグするとインポートされる。(メールが多いととてつもなく時間がかかるので他の方法を探した方がいいかも)

SMS/MMSのアドレスを取得したら「メールアドレス変わりましたメール」を送って終わり。(GmailとExchange Serverを使って同期・プッシュ式で使えるが、PCドメインからのメールはフィルタされていることが多いので携帯向けに送信する時はSMS/MMSが良さそう)

$ sudo yum update
$ cd /tmp
$ wget https://packages.endpoint.com/endpoint-rpmsign.pub
$ sudo rpm --import endpoint-rpmsign.pub
$ sudo yum remove ruby*
$ wget https://packages.endpoint.com/rhel/5/os/i386/ruby-enterprise-1.8.6-5.ep.i386.rpm
$ sudo rpm -ivh ruby-enterprise-1.8.6-5.ep.i386.rpm
$ wget https://packages.endpoint.com/rhel/5/os/i386/ruby-enterprise-rubygems-1.3.2-5.ep.i386.rpm
$ sudo rpm -ivh ruby-enterprise-rubygems-1.3.2-5.ep.i386.rpm

参照:End Point Package Repository

R0010185.JPG

iPhone買いました。やったね!

調子が悪い時は部屋を掃除したり、いらない物を思い切って捨てたりします。そうすると頭の中も整理された気分になって気持ちが良い。ここ数年ブログを書いてますが、ほぼ自分自身の外部記憶と化しており、ブログが散らかってると自分の頭まで散らかってる錯覚に陥ります。そこでブログの大掃除をやってみました。

古い日記のサルベージ

2002年頃の日記が数ヶ月分眠っていたのでマージしました。(この時期はASP1.0?とMS SQL Server6.5?で日記が書かれてたらしいのがびっくり。もうまったく使い方分か>りません・・・。)

テキストのフォーマット

Web日記時代から数えて9年分のテキストがありますが、いろいろなソフト・ハードで書いてきたので本文のフォーマットがバラバラ。

  • 手書きのHTML
  • MTのフォーマット(RailsのHelperで言うところのsimple_format)
  • Textile

これらが混在していたのでエントリーの内部フォーマットはHTMLに統一しました。

URLの永続化

これは一つ前のリニューアルからですが、エントリーのURLは「0を除く自然数」と決めました。永続性と意味を考えて永続性を優先しました。

他のリソースの置き場所

画像や動画はFlickrやYouTubeといった極力外部の長持ちしそうなサービスに置くことにしました。

リンクのクリーニング

全テキストから/src="(.+?)"/と/href="(.+?)"/でリンクを抜き出して、リンク切れや無くなったリソースを洗い出しました。もう存在しないものは仕方ないですが、記述間違いや移行時のミスで起こったリンク切れを修正しました。(タグの中で改行が無いという前提で)

認証の単純化

認証は大好きなBASIC認証にしました。エントリーを書く人は僕しかいないので、Rails標準のBASIC認証機能で十分です。user.ymlにアカウントとパスワードを書いて下記のようにしました。

class ApplicationController < ActionController::Base
  def authenticate
    authenticate_or_request_with_http_basic do |username, password|
      user = YAML.load_file File.join(RAILS_ROOT, "config", "user.yml")
      username == user["username"] && password == user["password"]
    end
  end
end
class DocsController < ApplicationController
  before_filter :authenticate, :only => [:new, :edit, :create, :update, :destroy]
end

検索エンジンに認識してもらう

sitemap.xmlを作ることで内部リンクの少ないこのブログでも各個別エントリーをインデックスしてもらえるようにしました。

HTMLのインデントが綺麗

hamlを使ったのでHTMLのインデントが完璧に・・・(うっとり)

HTMLのインデント問題。このブログに関してはHTMLのインデントは(少し妥協して)hamlを使うことにしました。ところが別の問題が。それはインデントされたエントリー内でpreタグを使った場合、意図してないインデントが表示されてしまうことです。

show.html.haml:

.doc
  = @doc

こういうテンプレで、

<pre>あああ
いいい
ううう</pre>

こういうエントリーを書いた場合、

<div class="doc">
  <pre>あああ
  いいい
  ううう</pre>
</div>

こういうHTMLが出力されるのでpreの2行目以降に余計なインデントが表示されてしまいます。

そもそもコードにはcodeタグだけでpreを使わないという手もありますが、通常のWYSIWYGエディタでは2個続きの改行は段落としてpタグがふられて、コード中の空行を意識しないといけないという面倒なことに。かといって改行イコールbrタグというのも気持ちが悪い。

どうしたもんか・・・。

関連:HTMLのインデントを合わせたい - p0t

追記:

hamlのfilterを使えばいい気がしてきたぞ!?

追記2:

hamlでtext_areaを使う時のメモ - Hello, world! - s21g

こちらの情報で解決!htmlでcontentノードの空白が表示に影響があるのはpreとtextarea。共通の問題なんですなあ。