しょんぼり技術メモ

まいにちがしょんぼり

Future Home Controller をRubyからいじるラッパを作った

タイトルで完結シリーズ。
Future Home Controller フューチャーホームコントローラーを買ったので、このWeb APIRubyプログラムからいじるためのラッパを書きました。
https://github.com/syonbori/fhc4rubyに置いてあります。

コレを使って、PC上でSinatraなサーバを動かして、タイマーを作ってみました。

これを会話シナリオに突っ込んで、「コンピューター、三分はかって」と呼びかけると3分後に知らせてくれます。

Scientific Linux 6.1でShibboleth SP環境を作る

http://sites.duke.edu/linux/shibboleth/を参考にしつつ、repoファイルは

[shibboleth2]
name=Packages needed for Shibboleth 2.x
baseurl=http://install.linux.duke.edu//pub/linux/shibboleth2/el-6/$basearch
gpgkey=http://download.opensuse.org/repositories/security:/shibboleth/CentOS_5/repodata/repomd.xml.key
gpgcheck=1
enabled=1

こうして、

# yum install shibboleth

でOK。

yyyymmdd形式の日付を含むファイルのうち、欠落している日を探すスクリプト

hoge.yyyymmdd.logのような形式を持つログファイルが大量に手元にあり、そのうち欠落している日を探すという処理が必要になったので、Rubyでちゃちゃっと書きました。
結構あちこちでありそうなケースだと思うんですが、既存のツールの組み合わせで書く方法が思いつかなかったのでRubyで。
Gist: listup the lacking files with date from and date to · GitHub

Xiタブレットモニターキャンペーンの回線をアレコレした記録

昨年末にXiタブレットモニターキャンペーンというものがありまして。
「ARROWS Tabをモニターで貸し出すから感想とかを呟いてね。モニターとしての義務を全うしたらその端末あげる。あと2ヶ月目からの使用料から15000円分キャッシュバックするよ」というキャンペーン。運良く当選したので便利に使っていたんですが、終了後にその回線をどうしたか、という記録です。

契約段階

Xiデータプランフラット(2年縛りなし)で契約。契約手数料3150円がかかる。
モニターってことで例外的な処理のようで、DoCoMoショップでSIMだけ発行してもらう形を取る。んで事務局に連絡して端末を送ってもらうという流れ。

初月

キャッシュバック対象にならない1ヶ月目。モニター期間。契約手数料とデータプランフラットの料金がかかる。

二ヶ月目

ここからキャッシュバック対象になる。モニター期間。

三ヶ月目

モニター期間外。北海道に旅行する都合があったので、回線は解約せずに引き続き使う。
(実はこのときまで、初月がキャッシュバック対象にならないことに気付いてなかった)
ここもキャッシュバック対象。

MNP

で、DoCoMoは定額プランの料金を日割りしてくれないので、月末に解約orMNPするのが賢い。おまけに、MNP優遇の時代がそろそろ終わりそうな気配がするので早めに動くことに。
2012年3月だと、DoCoMoから転出する場合はauがキャッシュバックで美味しいので、庭に転出することに決めて色々と店を調べる。

Xiデータ回線からMNPする場合、WebからはMNP予約番号が取れない。そこで、DoCoMoショップへ出向いて、「音声プランに切り替えてから、MNP番号を出して欲しい」と依頼する。MNP手数料2100円がかかる。

あとは普通にMNPauへ。

自分の場合、ともコミ学割が使えるので、「EVO3D一括0円、開通後即店舗ポイント2万円分、必須オプションなし」という条件の店を見つけてEVO3DへMNP。新規契約手数料3150円。契約時にはISNETと安心サポートが付いてきたけれど、翌日解除。後述。これで、EVO3Dの端末と2万円分のポイントが手に入る。

続いて、以前機種変したときに手元に残してあったガラケーを押入から引っ張り出してくる。EVO3DはSIMカードがない機種なので、EVO3Dに登録してある番号をガラケーに移すという処理が可能になっている。正しくは、その番号をもつSIMカードを新規発行してもらうことができる。無料。EVO3DやPHOTONのような、SIMをもたない端末に限る。ついでにEVO3Dから番号を削除してもらう。これも無料。
さらにISNETと安心サポートも解約。基本使用料とユニバーサルサービス料しかかからない状態。ここに学割がきくので、実質ユニバーサルサービス料だけで運用できる上、学割の「(一部時間帯を除いて)auへの電話が無料」が生きる状態。もちろんISNET/EZWINがないのでメールとかは不可。

これによって、EVO3Dには一切auケータイ番号がない状態になり、ガラケーの方にMNPした番号をもつSIMカードが刺さった状態になる。あとはこのEVO3DをWiFi専用機として使うも良し、何らかの方法で現金化するもよし。

今回は学割を使っているので2年後に契約更新or解約。それ以外は違約金がかかる。忘れないようにしよう。。。

収支

  • 出ていったもの
    • Xi回線新規契約 \3150
    • DoCoMoauへのMNPポートアウト手数料 \2100
    • auでの新規契約手数料 \3150
    • ユニバーサルサービス料(数円×24ヶ月)
    • Xiモニター期間初月使用料(6000円ぐらい)
    • au初月の日割り料金({\315+\980}/31)
  • 手に入ったもの

キャッシュバックに関しては、プロ古事記のみなさんみたいに頑張ればもっと高額なものを狙えたはずだけど、近所だとISフラット必須だったり分割払い必須だったりでアレ。同じ店舗でPHOTONの在庫があれば、そっちはCB3万だったのでよりオイシい感じだったんですが、まあ上々な結果だと思っています。

ScientificLinux6でLDAP認証を使ってログインするときの設定

自分用メモ。間違ってたらごめんなさい。

  1. nss-pam-ldapd, pam_ldapパッケージを入れる
  2. authconfig-tuiで設定する
  3. /etc/pam.d/system-auth の中で出てくるpam_sssをpam_ldapに置き換える
  4. 再起動

gnuplotでグラフを表示しているときに使えるショートカットキー

自分用メモ。ウインドウでhを押せばヘルプが出るのでそれを読めば解決するけど。

キー 機能
1〜4 座標表示のフォーマットを変更(?)
5 定規(ruler)表示時の距離を表示するか
6 ショートカットキーのコマンド内容を表示するか
7 図全体のアス比を変更
q 閉じる
e リプロット
r 定規(ruler)を表示するか
u 右クリックズームの履歴をクリア
p 右クリックズームの履歴を戻る
a 各軸のスケールを自動で設定
g グリッドを表示するか
h ヘルプを表示
l 対数軸にするか
b 枠の設定
n 右クリックズームの履歴を進める
m マウスを有効にするか
上下左右 3D時の視点移動

p,u,nがマウスによる右クリックズームの機能に対応するものだ、とご指摘頂いたので修正しました

EmacsからYahoo翻訳を使う

国際会議の論文を書いていて、ある程度固まってきたので英訳する作業を始めたものの、いちいち書いてはYahoo翻訳にかけてチェック、書いてはチェックを繰り返すのは非常にめんどくさいので、なんとかならないかと思ってやってみた。

・できること
Emacsで範囲選択してコマンドを呼ぶと、その領域を翻訳した結果がミニバッファに出てくる

モノはこちら:use Yahoo! Translation via STDIN and utilize from Emacs for editing LaTeX · GitHub

Gist:

Emacsのshell-command-on-regionを使うと、範囲選択した部分のデータをコマンドの標準入力に渡すことができます。
region2trans.rbに"en2ja"や"ja2en"を渡すと、標準入力から読んだデータを日本語に/英語に翻訳したモノが出力されます。
これの組み合わせで実現しています。

論文はLaTeXで書いているので、いくつか前処理したい表記(\citeとかは無視して欲しい)ので、そのフィルタを噛ませてから呼んでます。latex_filter.rbがそれで、今のところものすごく手抜きです。。。

翻訳の使い方についてのガイドラインがはっきりしないので断言はできませんが、http://help.yahoo.co.jp/help/jp/honyaku/honyaku-18.htmlを見る限り、二次的に提供するようなサービスをしなければ大丈夫でしょう。たぶん。まあ個人的に使って下さい。

・Yahoo翻訳について
翻訳APIを叩く際、_crumbというパラメータがないと怒られるようです。この_crumbは、翻訳ページを開いた際のhiddenな要素から値を取得しているので、このスクリプトでも同じような動作を行わせています。これさえなければもっと短時間で書けたのに…

・免責事項
なにがどうなってもぼくはしらないよ。

・ライセンス
修正BSDライセンスでお願いします。好きにしてください。