Just another Ruby porter,

〜2012年12月下旬〜


<Prev(,) | Next(.)> | Recent(/)>> | RDF

2012-12-21 (Fri)

Ruby Weekly退会

gmailでsubscribeしてるユーザーは全部退会させられた。

Recently Gmail has been throwing Ruby Weekly into the 'spam' folder more and more despite it passing all of the spam checks I can find. One thing that can cause this problem is when there are too many 'disengaged' subscribers on a list because they think we are sending e-mail to people who no longer want it.

For this reason, we have performed an analysis of all subscribers who haven't opened any recent issues or clicked any links in those issues. This should remove most of the genuinely disengaged subscribers but there are a few cases where you may be a genuine, active subscriber getting caught up in this.

ああ、クリックしてないようなやつはどうせ見てないんだからってことか。
確かにほとんど見てないので、@rubyinsideを見るようにしよう。


2012-12-22 (Sat)

共有フォルダにあるファイルをThunderbirdでリンクに

Outlookだと\\servername\share\file.txtで勝手にリンクになるのでクリックできるが、
Thunderbirdでは単なるテキストになってしまう。どうすればリンクになるか調べたら、
Links to local pages do not work - MozillaZine Knowledge Baseが見つかった。
つまりfile://///servername/share/file.extとすればいいらしい。
たしかにリンクになった。Outlookでもいけた。
しかしこれがUNCとは思えなくてどこに飛ばされるんだかわからず逆にクリックしづらい。
なんで5個も/が必要なのかとか。さてどうしたもんか。


2012-12-23 (Sun)

Tumblrにamnimated GIFをアップロードすると静止画になってしまうことがある

ちゃんとアップロードできることもあるし、なにか制限があるのかと調べてみた。
Photo Upload Troubleshootingによるとやはりサイズ制限があった。

If you are using animated GIF, make sure it is no larger than 1MB and no more than 500 pixels wide.

ああ、1MBはちょっときついな。


2012-12-24 (Mon)

imapfilterで別のサーバへメールを移動

会社のメールサーバはspoolに置いとけるサイズが制限されてるので、
別のimapサーバ立てて適宜メッセージを移動させているが、
長期休暇があるとそれもできず、あふれてしまいそうなのでなんとかしたい。
どうでもいい通知メールだけでも自動で移動させられればいいんだが。
いやさせないといけない。この通知メールが諸悪の根源でしかも休日とか関係なくやってくるので。
まあ、それもおれが送るようにしてるので自業自得なんだけど。

それはそれとして適当にaptitude search imapするとimapfilterってのが見つかった。
luaで書かれているらしい。設定ファイルもluaだ。
だったらrubyで書いてもいいような気がするが、まあ、すでにあるので試してみた。
参考ページ: linux task: sorting mail with imapfilter - sigmoid
やりたいのはSubjectに特定の文字列があったら別のサーバへ移動なので、ちょっといじって試した。
1回目はうまくいったように見えたが、送り先のフォルダを見ても新たなメールがない。
どこ行っちゃったんだ?


2012-12-25 (Tue)

imapfilterの続き

-vつきで実行してみたらmailbox名が不正なようで。

C (5): 1011 APPEND "9:Backups/2012/Log" () "25-Dec-2012 13:43:28 +0900" {1437}
S (5): 1011 NO [CANNOT] Invalid mailbox name
imapfilter: IMAP (5): 1011 NO [CANNOT] Invalid mailbox name

サブフォルダはだめか。いやでも参考にしたページでは使っているよな。
ひょっとしてdovecotは違う区切りになるのかとMaildirの下を見たら"."区切りになっていた。
というわけで"9:Backups/2012/Log"から"9:Backups.2012.Log"にしたらうまくいった。

いや、options.namespace = falseのせいだった。コメントアウトしたら"/"を区切りにできた。
man imapfilter_configを見てfalseにしちゃったけど余計なお世話だったようで。
ついでにmark_seen()を追加して既読になるようした。

----------------------
--  Global Options  --
----------------------

options.timeout = 120
options.subscribe = true
-- options.namespace = false

----------------
--  Accounts  --
----------------
-- For every account create an account entry and check() its status

acc1 = IMAP {
        server = 'imap-server',
        username = 'username',
        password = 'password',
        ssl = 'ssl3',
}

acc1.INBOX:check_status()

----------------

acc2 = IMAP {
        server = 'localhost',
        username = 'eban',
        password = 'password',
        ssl = 'ssl3',
}

-- acc2.INBOX:check_status()

----------------

-- select all messages from all INBOXes and construct a single table of messages
results = acc1.INBOX:select_all()
-- results = acc1.INBOX:is_unseen()

-----------------
--  Functions  --
-----------------
-- parseRules is used to filter message results using a table of rules (see below)

-- @param res         the table of messages to filter
-- @param ruleTable   the table of rules to match messages against
parseRules = function ( res, ruleTable )
local subresults = {}
  for _,entry in pairs(ruleTable) do
    -- don't use match_field, it downloads part of the msg (slow)
    subresults = res:contain_field(entry["header"], entry["p"])
    subresults:mark_seen()
    if subresults:move_messages( entry["moveto"] ) == false then
      print("Cannot move messages!")
    end
  end
end

---------------
--  Filters  --
---------------

pre_filters = {
  -- Banned IPs typically sending me spam
--  { header = "Received" , p = "85.31.186.26", moveto = acc1['Trash'] },
--  { header = "Received" , p = "176.251.35.146", moveto = acc1['Trash'] },
}

log = acc2['9:Backups.2012.Log']
inbox = acc2['INBOX']

filters = {

  -- Job log
  { header = "Subject", p = "AnalizeJob ", moveto = log },
  { header = "Subject", p = "SyncJob ", moveto = log },
  { header = "Subject", p = "find /backups", moveto = log },

}

post_filters = {

  -- Any remaining mail having in the subject SPAM? goes in Junk
--  { header = "Subject" , p = "[SPAM?] ", moveto = acc1['Junk'] },

}

---------------------
--  Parse messages --
---------------------

-- pre filter messages
parseRules(results, pre_filters)

-- sort messages
parseRules(results, filters)

-- post filter messages
parseRules(results, post_filters)

----------------

preとpostは結局なんで分かれてんのかよくわからないよねえ。
あと2012って数字が埋まっているところも来週にはもうまずいわけで、なんとかしないと。


2012-12-26 (Wed)

仕事納め

imapfilterはいいかんじで動いてるが、spamが残ってしまう問題が残った。
まあ、しょうがないか。


2012-12-27 (Thu)

imapfilterはサイズで移動することに

subjectとか考えてると切りがないので、10000バイトより大きければ移動することにした。
もうこうなったら全部移動してもいい気もするが。

large = acc1.INBOX:is_larger(10000)

でフィルタリングできる。あと年はos.date("%Y")で取れる。
あらかじめoptions.subscribe = trueしておけばmailboxが存在しなければ自動的に作成されるので、
新春を迎えてもいけるはず。

year = os.date("%Y")
log = acc2['9:Backups/' .. year .. '/Log']

spamは大抵でかいので勝手に移動されるだろう。


2012-12-28 (Fri)

グインを今さらながらダウンロード

買って忘れてた。
数が50冊と多いし全部入りきるかなと思ったら、画像ではなかった。
予想外でうれしい。


2012-12-29 (Sat)

忘年会

馬場のShakey'sでピザとパスタの毎年恒例の忘年会。
ふと気づくと16時で遅刻していた。
なひさんが体調悪く残念ながら不参加。
これで皆勤はゆぞさんとおれだけになった。
というわけで恒例の公開内緒話はなかった模様。

SFDCは意外にもドットコムだったとか、地図アプリとか、
メールはあふれるものとか、Felicaとか、パネットーネありがとうとか、
氷点下7℃にならないと水道は凍らないとか。


2012-12-30 (Sun)

Google Chromeでuserscript

直接クリックすると

「拡張機能、アプリケーション、ユーザースクリプトはChromeウェブストア以外から追加できません。」

と文句言われるが、横の詳しく見るをクリックすると追加する方法が書かれている。
他のウェブサイトからの拡張機能の追加
要するにダウンロードして[拡張機能]へD&Dしろってことで。
ちょっと面倒だけど 邪魔なTracking Query Stringを削除するユーザースクリプトもあっさりと入った。


2012-12-31 (Mon)

散歩

fitbit買ってから休みの日の散歩が増えた。
それはいいんだが、通っていた小学校に行ってみようと思ったらたどりつけなかった。
道がもうないんだよな。ないというか整備されて舗装されてるもんだから、風景がまるで違う。
元々方向音痴な上なぜか確信を持ってどんどん進むもんだから、全然見当違いな場所行きつく。
夕陽を頼りに泣きながら帰ったよ。

で次の日にリベンジしたが、普通に歩いて往復で軽く1時間以上かかった。
途中でちょっと買い物したが、遠すぎるだろ。
たしかに小学生の頃もなんか早起きして学校行ってた気がするが、そんなに遠かったのか。
Goolge Mapで見たら、2,3kmはあるような。
なんだろう。この頃から通学時間とか通勤時間は1時間ぐらいはあたりまえ的に感じていたのかもしれない。


<Prev(,) | Next(.)> | Recent(/)>> | RDF


WWW を検索 jarp.does.notwork.org を検索

わたなべひろふみ
Key fingerprint = C456 1350 085F A320 C6C8 8A36 0F15 9B2E EB12 3885
Valid HTML 4.01!