2014/12/05

ミドリガメさようなら

子どもが三歳のときに夏祭りで買ってきたミシシッピアカミミガメが大きくなりすぎて水槽では買えない感じになってきたので,引き取って頂ける業者さんに送ることにしました。

ふだんあまり世話していない子どももなぜか寂しがってました。

2014/11/29

Nexus 9 が届いた

Amazonで一ヶ月以上前に注文していた Nexus 9 が届きました。ASUS TF101より軽くて片手でも何とか持てます。

OS は Android 5.0 Lollipop ですが,初期設定がかなり簡単になっています。無線LANアクセスポイントの設定,Google アカウントの設定を行うと,今利用しているAndroid端末にインストールされていたアプリをリストアしてくれます。

ゲームはLollipopで動かないものが多いです。

2014/11/08

HTL23納品

通販で購入したHTL23(HTC J butterfly二代目)が届きました。
思っていたより早く納品され購入プロセス上特にトラブルありませんでした。

手に持ってみてHTL21より厚くなって若干持ちにくくなった印象です。充電用micro USBのフタがなくなったのは便利になったのですが,HTL21のように充電スタンドで充電できなくなったのは不便です。

Android 4.4(KitKat)は細かいところのUIがよくなっていてJelly Beanより使い勝手がよく感じます。

また,HTL23独自のMotion Launcherは電源ボタンが中央でなくなったので,スクリーンセーバーが働いているときに各機能にアクセスするのに便利です。

自宅で BUFFALO WHR-300を無線LANアクセスポイントに使っているのですが,HTL21は問題なかったのに,HTL23では0.1Mbps程度の速度しか得られないため,BUFFALO WZR-600DHPに変えてみたところ 下りで 26Mbps, 上りで74 Mbpsの速度が出るようになりました。

http://www.speedtest.net/my-result/a/1043735141

auで無料でWi-Fi HOME SPOT借りられるらしいので,とりあえず申し込んでみました。





2014/11/05

HTL23買いました

修理から戻ってきたHTL21は調子悪くナゾの再起動を2回連続やってみたり,バッテリーの減りが妙に早かったりでなにやらヤバイ雰囲気なので通販で安いサイトでHTL23を買ってみた。
店に申込書が届いてから1日で発送の連絡が来た。

HT-03A
001HT(Desire HD)
HTL21(HTC J butterfly)

に続いてHTC製Android端末。修理の間の代用機が使いづらくてHTC Senseじゃないとダメな体質です。

2014/10/19

HTL21(HTC J butterfly)を修理に出した

昨夜HTCロゴがつきっぱなしになっていて,朝電源ボタン長押しで再起動したら再起動の無限ループに陥った。
HBOOTからのfactory resetもきかない。なにもできないので近所のauショップに持って行ったら代用機を貸してくれた。

おサイフケータイ関連の手続きが異常に時間がかかるし,面倒。QUICPayはあまり面倒がないが。

月々の割引が終わる2015年1月にHTL23へ機種変更を考えていたけどそれまで持たなかった。

2週間ほどたってもauショップから連絡がないのでこちらから電話したところ,2日前に修理終わってショップにあるとのこと。ちゃんと連絡せい。
結局基板の交換となっていた。あと,必要ないmicroUSBポートのフタがまたついてて余計なお世話。

2014/06/29

RailsアプリケーションにIPアドレス制限をかける

IPアドレスのwhite/black listでアクセス制限を行うalpacaを試してみる。

READMEの通り,Gemfileに以下の一行を追加し,

gem 'alpaca'

bundleを実行。

bundle install

以下のコマンドを実行すると config/alapca.yml が生成される。

rails generate alpaca:install

config/application.rb の class Application < Rails::Application ブロックの最後に以下の一行を追加。

config.middleware.use Rack::Alpaca

config/alpaca.yml の設定では,whitelist: のみ定義する場合でも blacklist: を省略するとalpacaのエラーになるので要注意。

whitelist:
- xx.xx.xx.xx.
blacklist:
- 103.13.152.0/22
default: deny

エラー例:

blacklist: の定義がない場合
undefined method `map' for nil:NilClass (NoMethodError)

blacklist: にホスト名を定義した場合
invalid address (IPAddr::InvalidAddressError)

2014/06/10

gibbonでMailChimp API 2.0を使ってみる

email marketing applicationをAPI経由でRubyから使うのはMailChimpがよいとの話を聞いたので,gibbonなるgemをインストールしてテストしてみた。
Google先生に聞いてもほとんどPHPのサンプルコードしかないのでRubyから使うのはちょいと苦労した。API 2.0のドキュメントは少し不親切かも。

iContactだとActiveRecord的に購読者リストを扱えるasts_as_icontactってのがあるらしいが,調査した限りではMailChimpにそんなものはないらしい。

で,gibbonの使い方だが,まずはFinding or generating your API keyにしたがってAPI keyを取得。コレひとつでAPIが利用できるので認証はチョー簡単。

Listへの登録


Listへの登録は lists.subscribe を使う。
以下の例では(Interests)Groupを対象Listに2個設定しているので,groupings というArrayに2個Hashを登録。CSVファイルからメールアドレス,組織名,姓,名,関連製品(購読者の関連製品を":"で区切ってある)を読み込んでListに追加。

#!/usr/bin/env ruby
# -*- coding: utf-8 -*-

require 'gibbon'
API_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-us8"
gb = Gibbon::API.new(API_KEY)
list_id = "1a2b3c4d5e"
io = open "contacts.csv"
while line = io.gets
  puts line
  email, org, sei, mei, title, products = line.split(",")

  begin
    merge_vars = Hash.new
    merge_vars = {
      :org => org,
      :sei   => sei,
      :mei   => mei,
      :title => title,
      :groupings => { 0 => { "id" => 10001, :groups => products.split(":")},
                             1 => { "id" => 10002, :groups => ["Customer" ]}
                     }
    }
    gb.lists.subscribe(:id => list_id,
                       :email => {:email => email},
                       :merge_vars => merge_vars,
                       :update_existing => true,
                       :replace_interests => true,
                       :double_optin => false)
  rescue Gibbon::MailChimpError => e
    puts e.message
    puts e.code
  end
end
io.close

Saved Segmentの設定


Campaignでメール配信する際にListを絞込するためのsegmentの定義。conditions の書式に留意。

#!/usr/bin/env ruby
# -*- coding: utf-8 -*-

require 'gibbon'
API_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-us8"
gb = Gibbon::API.new(API_KEY)

conditions = { 0 => {:field => 'interests-19999',
                     :op => 'one',
                     :value => 'product1'}}
time_added = Time.now.strftime("%y-%m-%d %H:%M")
list_id = "1a2b3c4d5e"
begin
  segment_id = gb.lists.segment_add(:id => list_id,
                       :opts => {
                         :type => 'saved',
                         :name => "via Gibbon #{time_added}",
                         :segment_opts => {
                           :match => 'any',
                           :conditions => conditions}})
rescue Gibbon::MailChimpError => e
  puts e.message
  puts e.code
end
puts "segment created #{segment_id}"

MailChimpは無料で2,000購読者月12,000メール配信まで使える。

2014/05/04

OpenDKIM milter を Postfix で使う

FreeBSD 10-R で稼働させている Postfix に DKIM 署名できるようにしてみた。


DKIM Key Checker
DNS設定確認ツール

DKIM署名検証メールアドレス
dkim-verify@dkim.jp にテストメールを送信するとDKIM署名の検証結果が返信されてくる。

2014/04/18

Dell PERC : The storage battery is low.

デル製サーバのiDRACのログに

The storage battery is low.

という警告が出ている。

http://www.j0e.us/2011/10/20/hard-lesson-from-dells-perc-h700-battery-write-cache/
http://blog.yo61.com/dell-drac-bbu-auto-learn-tests-kill-disk-performance/

によるとRAIDコントローラのバッテリの充電レベルが下がっていてキャッシュからディスクへの書き込み性能が低下するらしい。

2014/02/03

BDZ-AT900のテレビ自動入力切替機能

ソニーのKDL-32J5にBDレコーダーのBDZ-AT900をHDMIでつないでいますが,先日までBDZ-AT900のリモコンのスタートボタンを押すとテレビの入力が自動でBDレコーダーの入力に切り替わっていたのがテレビのリモコンで入力切替しないといけなくなり,色々試行錯誤してみたところ,他のHDMI入力に接続しているJ:COMのセットトップボックスがハングアップしていて,リセットしたらBDレコーダーに連動してテレビの電源が入り,入力が切り替わるようになりました。

やれやれ。