Thunderbirdで返信時の引用文の文字色を変更する方法

Thunderbird

Thunderbird v9.0.1で動作確認済みの方法です。

ユーザスタイルシートで見た目を定義する

ユーザスタイルシートとは、その名の通りウェブページで使われるスタイルシート(CSS)です。
これを定義してThunderbirdの見た目をカスタマイズできます。
以下のパスに作ります。
もしchromeという名前のディレクトリが無ければ作成してください。

~/Library/Thunderbird/Profiles/< ランダムな文字列>.default/chrome/userContent.css

引用文をオレンジにしてみる

僕は背景を黒にしているので、その場合で見やすい文字色としてオレンジにしてみました。
userContent.cssに以下のように記述します。

span[_moz_quote=true] {
  color: orange !important;
}
pre[_moz_quote=true] {
  color: orange !important;
}

orangeの部分を任意の色にしてください。
保存して、Thunderbirdを再起動します。

Screen Shot 2014-07-24 at 10.22.51 PM

変わりました!

他にもいろいろ変えられるらしい

もっとカスタマイズしたい!という方は、下記を参考にしてみてください。

20店舗の不動産屋に問い合わせてみた結果

1327

物件より営業マンに注目する

最近引っ越そうと思って、いろいろ物件をネットで眺めていました。
でも、引っ越しの経験が物心ついてから一度しかない僕は、どうやったらいい物件にありつけるのかよく分からず。

ふと、以下の記事を見つけた。

物件の前に、親身になって探してくれる親切な担当者をまずは探しましょうという話。
コンテンツを探しているのでついコンテンツに目がいきがちだけど、コンテンツを引き当ててくれる「人」に注目するという考え方になるほど、と思った。
不動産屋なんて、結局取り扱っている物件は似たり寄ったりらしいし。

方法としては、単に沢山の不動産屋に問い合わせるだけです。
まだ物件は決定していないけど、不動産屋によって対応が全然違って面白かったので、中間報告的に書きます。

問い合わせる準備

まず、どのような手順で問い合わせたのかを説明します。
上記のページと同じになって恐縮だけど、以下の事を僕もしました。

それで、家賃の相場などを鑑みつつ、以下のような項目の希望条件を出して行きます。

最寄り駅

  1. 新宿
  2. 代々木
  3. 代々木上原
  4. 大久保

必須

  • 家賃10万円まで
  • 2階以上
  • 風呂・トイレ別
  • 駐輪場
  • インターネット接続

あったらいいな

  • 日当たり良好
  • 鉄筋コンクリート
  • オートロック
  • 独立洗面台

メールを連射する

SuumoとかHome’sの各物件のページには、掲載会社の情報があります。
その会社・店舗名で検索して、出てきたホームページから問い合わせします。
電話番号は、項目が必須の場合は「080-0000-0000」などと打ちます。

効率的な賃貸物件の探し方 に書いてある文面を真似して問い合わせます。

以下の条件で物件を探していただいて、条件に合う物件がございましたらメールの添付ファイルにてデータを送ってください。もし御社からいい情報を頂けましたらその後伺わせて頂きたいと考えております。(以下条件を羅列)

一次返信の傾向

20社ほど問い合わせてみました。反応はバラバラでした。
基本的にみんな機種依存文字を使いまくりです。
Windowsの雰囲気をひしひしと感じました。
返信内容とその割合を、良かった順に紹介します。

A【1件】快活な自己紹介・いくつかの物件紹介+オススメ理由

」や「m(_ _)m」といった文字を使っていて、愛想の良さを感じます。
資料に載っていない補足情報が本文に書かれていて、親身さを感じました。

B【4件】丁寧な自己紹介・いくつかの物件紹介

Aに補足説明がないもの。

C【8件】堅い自己紹介・機械的な物件紹介

事務的な対応。
メールならこんなもんか?と思ってしまう。

D【1件】自己紹介なし・物件情報なし・条件の質問

「築年数」と「駅からの距離」を聞かれました。

E【2件】名前の漢字を間違う

僕は「タクヤ」なんですが、タクの漢字を間違えられました。
仕事が粗そうな印象を受けました。

F【1件】とりあえず電話くれ

メールは嫌だそうです。

G【2件】返信なし

24時間以内に返事がありませんでした。

H【1件】?????

意気揚々とメールを開いたら、本文が「text message」でした。えっ。
メール表示を「プレーンテキスト」にしていたのが原因でした。
HTML表示に切り替えたら、物件情報が表示されました。

二次以降の返信の傾向

上記のなかからいくつか返信しました。それに対する返信の傾向を列挙します。

A-1 的確な回答・快活

とにかく元気いっぱいに答えてくれました。
この時点で信頼感が出てきます。

B-1 テンション低めの回答

あんまりいい物件がなかったからか、申し訳なさが文面から感じました。

B-2 返信なし

まさかですが、途切れました。切ない。
お休みでしょうか。

C-1 物件情報の連投返信

その機械的な挙動から、もしかすると、中の人などいないのかもしれません。

結論

とりあえずお店に入らなくてよかった

これに尽きます。
ここまで対応に違いが出るとは思わなかったです。
対応の良いいお店が見つかったので、そこにお伺いして相談しようと思います。
今後は、こういったお店ごとの応対の善し悪しの評価も「食べログ」みたいにネットに広がる事でしょう。

みなさんも試してみて下さい。

漫画のスマホファースト: planetarium – ハシモトスズ

スマホで読める漫画ってありますよね。

各コマを横スクロールして読み進めるタイプ。あれ目が疲れるから大嫌いなんですよ。

タップかスワイプでコマを進めるタイプ。あれも嫌い。何百回とタップさせられるなんて、ありえない!

そんな中、新しいタイプの漫画を見つけました。

Screen Shot 2014-07-16 at 9.42.15 AM

planetarium – ハシモトスズ

コマ割りがほぼ全部タテなのです。
コマごとにタップしなくていいし、横スクロールが無いので目が疲れにくい。
しかも、立てスクロールを活かした特徴的な表現。
めっちゃ読みやすい!!

これは・・!!もしや漫画のスマホファーストでは・・!!と衝撃を受けました。

ぜひこの表現手法が浸透して欲しいものです。

Node.jsにおける大量のデータ処理の際の非同期処理コールバックがスタックしすぎる問題への対処

ストリーミング処理の落とし穴

Mongoose(MongoDBのODM)を使って、コレクションからほんの10万ほどのドキュメントを処理するスクリプトを実行した時でした。処理が固まってしまうのです。なぜでしょう?

各ドキュメント処理では、コールバックを伴う非同期的な処理を含みます。
問題のCoffeeScriptのコードは以下のようなイメージです:

Foo.find()
    .sort value:-1
    .stream()
    .on 'data', (d)->
        someTask d

someTask = (d)->
    doAwesomeJob (result)->
        console.log "Great!"

モデルFooのドキュメントを全て読み込み、各ドキュメントをストリームに流し込んでいます。
メモリを節約するためにストリームの手法を採用しています。
doAwesomeJobは、例えばAPIを叩くとか、そういう非同期な処理です。
しかし、doAwesomeJobのコールバック関数がなかなか呼ばれない。遅い。ついには全く呼ばれなくなる。

イベントループのキューが溢れている

Node.jsアプリケーションはシングルスレッドです。
下図のように、イベントループ機構が備わっていて、Event Queueに溜まった処理キューを順次消化していく仕組みになっています。

event-loop

(via http://misclassblog.com/interactive-web-development/node-js/)

つまり、Node.jsはひとつずつしかキューを処理できないのです。
上記スクリプトで、ストリームのイベントのInvocationが、大量にこのイベントキューに押し寄せている事を想像してください。
doAwesomeJobのコールバックは、その非同期処理の完了時点で最後列にエンキューされます。
しかし、非同期処理の間にドキュメント読み出しイベントの処理キューが大量に溜まります。
その結果、doAwesomeJobのコールバックが呼ばれるまでに時間がかかってしまっているのでした。

似た問題に直面している人がいました。

RabbitMQのメッセージキューがいちどに大量に来た時に、イベントループのキューが溢れるようです。
問題は僕のケースより少し深刻なようです。見なかったことにしましょう

ストリームを分割しよう

溢れるのなら、分割すればいいですね。
以下のように変更を加えました:

processNext = (offset, num, on_completion)->
    i = 0, j = 0, closed = false
    Foo.find()
        .sort value:-1
        .skip offset
        .limit num
        .stream()
        .on 'data', (d)->
            ++j
            someTask d, ->
                ++i
                if i==j && closed
                    processNext offset+i, num, on_completion
        .on 'close', ->
            closed = true
            on_completion() if j==0

someTask = (d, callback)->
    doAwesomeJob (result)->
        console.log "Great!"
        callback()

processNext 0, 100, ->
    console.log "done!"

ドキュメントを100個ずつ読み出して、処理して、終わったら次の100個・・というフローに変更しました。
今のところ、これで上手く動いています。

でもこのコードは少し汚いので、よりエレガントに書くためにasyncを使うことをお薦めします。
drainで完了をフックするといいと思います。

このストリームの分割では、ストリームを処理している間にドキュメントが追加・削除される事を想定していません。
コレクションの変更まで考慮する場合は、想定される変更内容によって変わると思います。

ご参考まで!

[iOS] Swiftの隠し機能:数学記号をカスタムオペレータとして使う

swift-book

新言語Swiftでは、C++のようにカスタムのオペレータを定義できます。
このオペレータには、Unicodeの文字が使えるとのこと!
下記のツイートのような感じで使えるらしいです。

let r = ¬(a ∧ b)

詳しい例はこちら:

https://gist.github.com/mattt/f457625af116721ffb57.js

Vineで見つけたおもしろ動画まとめ

trademark_logo

Vine面白いですよね。
ついつい気づいたら1時間とか見てしまってます。
中高生のアホなテンションがたまらん。
海外のも含めて、笑えるやつ、興味深いやつ、凄いやついろいろ混ぜてご紹介します。
暇つぶしにどうぞ!


https://vine.co/v/Mrrhn62TmYF/embed/postcard

//platform.vine.co/static/scripts/embed.js

続きを読む Vineで見つけたおもしろ動画まとめ