肩痛対策に、YOGA Tablet 2-10 with Windowsを買ってみた。

お客様先などでメモを取ったりプレゼンするのに、ノートパソコンの携帯が必須となっているのですが、私のノートがThinkpad T430と、字面通りの重量級だったりします。

他にもHP EliteBookやASUS Zenbookなどを持っているのですが、どうにも電池が持たなくなっています。もともと1日外出外出だとギリギリなうえ、経年劣化でどうしようもなくなるんですよね。特にZenbookみたいなUltrabookなラップトップは電池交換が自力で出来ないので、対処しようがない。買う時に分かっていたとはいえ、しんどいですねえ。

そんなわけでデイパックに入れて背負うにしても、付属品やら資料やらを入れて持ち運んでいると肩が痛くなってくるので、もっと軽いものを物色しておりました。「VAIO Proシリーズとか、Lavie Zシリーズとか買えよ!貧乏人!」とか突っ込みが入りそうですが、お値段が・・・大変申し訳ございません。

最近はやりのWindowsタブレットを調べてましたら、思っていたよりは軽快に動き、意外とイイ感じでした。「これはツカエル」と思ってスペックをチェック。自分の要件とは

  • 会議のプレゼンで画面に映すので、HDMI端子は必須。
  • バッテリーはオフィス作業レベルで10時間近くは欲しい。
  • 普通のWin8.1が望ましい。RT版だと先行きが怪しすぎ

HDMI縛りを入れると極端に選択肢が狭まりますし、予算も増えますね・・・USBでディスプレイ接続を行うアダプターなんかも世の中にはあるんですが、結構イイ感じのお値段ですし、相性問題リスクを考えると、結局は最初から装備していた方がよさげです。

で、選択したのが表題のYOGA Tablet 2-10 with Windowsの新古品を3万ちょいで入手。

良い所

  • ほどほどの軽さ: Nexus7なんかと比べるとズッシリ感がありますが、やはり重量が1kgをきると負担が全然違います。
  • ほどほどのスペック: メモリが2GBなのでアプリを複数起動すると、やはりもたつき感はあるものの、思ってた以上には普通に使えるレベル。
  • ほどほどに使えるソフトウェアキーボード: カバーを兼ねたBluetoothキーボードが付属しているものの、画面上のソフトウェアキーボードも、メモ用途程度であれば十分に使える。画面の広さの勝利
  • 自立するスタンド: Yogaシリーズならでは。タブレットスタンドが無くても、机とかにホイホイ立てておけるのは便利

悪い所

  • 怪しげなバグ?: もともそSuperfish騒動があったシリーズなのでチェックが必要なのですが、さらには、スリープ復帰時にボリュームが自然に100になる時があるなど、よく分からない挙動をすることがあります。
  • 付属キーボードのタッチパネルがヘタレ: やや強めに押し込まないとクリックにならないんですよ。逆に力をいれるとポイントがずれたりして、結構イラっとするところ。しょうがないのでBluetoothマウスを併用することに。キーボードの打鍵感は悪くないので勿体ない。

そんなわけで、当然の事ならが開発とかデータ処理には向いているはずもないですが、外出時のラップトップ代わりには十分に使えています。10インチディスプレイでデスクトップの通常のアプリを扱うのは、タッチパネルでは結構しんどいので、もっと便利なストアアプリが充実してくるといいんですけどね。

Windows版Emacsでtabbarをインストール

自分用のメモです。

Windows版のEmacsで、Packageを使ってパッケージをインストールしようとすると、エラーが出て出来ない場合がありまして。同じ設定でLinuxではすんなり入るのですが、Windows版だと途中で止まってしまっているようで困った。

elファイルを落としてきて、byte-compileするとかすれば使えるようになるんだろうけど、構成は合わせておきたいなあと。

packageの設定が出来ている事を前提にしまして

  1. パッケージのtarファイルをダウンロードしてくる。(今回は、tabbar-20141109.143.tar)
  2. C:\Users\(User Name)\AppData\Roaming\.emacs.d\elpa に解凍
  3. M-x update-directory-autoloads を実行
  4. “Update autoloads from directory:” プロンプトの後、”~/.emacs.d/elpa/tabbar-20141109.143/ を指定
  5. “Write autoload definitions to file:”プロンプトの後、”~/.emacs.d/elpa/tabbar-20141109.143/ tabbar-autoloads.el”を指定
  6. 上記のパスに tabbar-autoloads.el が作成されている事を確認

ここでemacsを再起動すると、tabbarが利用できるところまで確認。おそらくはパッケージのアップデートなどには対応出来ない気もするのだが、取り合えずの一時しのぎに。もっと良いやり方があるような気もする。単純にtar玉を展開するだけだと、起動時にエラーが出て有効にならないので上記3の手順が必要。

Lenovoのアドウェア”Superfish”問題とアンインストール方法など

TechCrunshさんの記事“LenovoのPC全機種にプレロードされているアドウェアが実は恐ろしいマルウェアだった!” を読みまして、ThinkPadユーザーといたしましては、ちょっと冷や汗ものでございます。いろいろと調べてみますと、2014年の9月ごろからはユーザーフォーラムで指摘されていたりしているんですね。

影響範囲はLenovoの公式サイトでアナウンスされています。

G Series: G410, G510, G710, G40-70, G50-70, G40-30, G50-30, G40-45, G50-45
U Series: U330P, U430P, U330Touch, U430Touch, U530Touch
Y Series: Y430P, Y40-70, Y50-70
Z Series: Z40-75, Z50-75, Z40-70, Z50-70
S Series: S310, S410, S40-70, S415, S415Touch, S20-30, S20-30Touch
Flex Series: Flex2 14D, Flex2 15D, Flex2 14, Flex2 15, Flex2 14(BTM), Flex2 15(BTM), Flex 10
MIIX Series: MIIX2-8, MIIX2-10, MIIX2-11
YOGA Series: YOGA2Pro-13, YOGA2-13, YOGA2-11BTM, YOGA2-11HSW
E Series: E10-30

Superfishの削除方法もコミュニティーでアナウンスされています。(“Removal Instructions for VisualDiscovery Superfish application”) まあ、普通のアプリケーションの削除手順と変わりが無いですね。

  1. コントロールパネル>プログラムのアンインストール
  2. “Visual Discovery”を選択>アンインストール をクリック

プログラムそのものをアンインストールしない場合には、「システム構成」「タスクマネージャ」等から、サービスを停止する方法もあります。

さらに重要なのは、ブラウザの設定にて証明書が”Superfish”のものに書き換わっている点で、これを合わせて削除する必要があります。Windowsのバージョン等によって、若干手順が変わると思いますが読み替えてください。(Win8.1+IE11で見ています)

  1. IEを管理者権限で起動(アイコンを右クリック>管理者として実行)
  2. 右上の設定ボタン(歯車のアイコン)>インターネットオプション>コンテンツ
  3. 証明書ボタン>信頼されたルート証明機関(左から4つめのタブ)
  4. “Superfish, Inc.”を探して見つかったら、削除ボタン

Google ChromeはWindowsのシステムを使っているので、上の手順を踏めばOK。Firefoxの場合は同様に削除する必要があります。

  1. メニュー>オプション>詳細>証明書>証明書を表示
  2. “Superfish, Inc.”を探して見つかったら、「削除または信頼しない」ボタン

この”Visual Discovery”の挙動としては、IEやGoogle Chrome等のブラウザでサイトを閲覧している際にサードパーティの広告を表示するもので、このソフトは電子証明書をインストールすることで、SSL含む全てのWeb通信に割り込むという事が確認されているとの事。先のTechCrunchの記事を見ても、”Bank of America”の証明書が詐称されている様子が掲載されています。Lenovoによると1月から同梱を停止し、今後も同梱することはないとの発表をしています。

これが広告表示に留まらず、ブラウザ上での行動をモニターしているとなると非常に怖いわけです。またこの証明書そのものもすでに破られているそうで、例えば街の公共Wifi提供者がLenovoユーザーの通信内容をモニターできる事も考えられます。

かなり影響範囲が広いのではないかと思いますので、今後の発表等には注視が必要と思われます。

— 2/20 10:20追記 —

なんで危険なのという理由について、良記事があったのでリンクを貼っておきます。

Superfishが危険な理由

実際に自分のThinkPadが影響を受けているかをチェックするためのテスターが公開されています。IEで見てみるのが良いんじゃないかと。下の画面のような表示が出てくれば影響範囲外。

Superfish CA test

Superfish CA Test

で、実際、証明書はどうなっているのという事ですが、すでに破られてます。そんなわけで、該当するThinkPadユーザーは、早急に対応が必要という事でよろしくお願いします。

Extracting the SuperFish certificate

 

— 2/20 18:30追記 —

Lenovo公式から削除方法が発表されたようです。(英文)

http://support.lenovo.com/us/en/product_security/superfish_uninstall

“Hawk”が気になって、Pivotalジャパンさんの「Big Data Suite」紹介セミナーに行ってきました。

コンサルのクライアントさんにデータ処理基盤導入の案件を担当させて頂いているのですが、ちょっと凝ったデータ構造になりそうながらも規模が巨大。かつ、それなりの低レイテンシーでの応答が必要となりまして、対応できそうな製品を探しておりました。

データ量がそこそこ抑えられるならmongoDBを並べて対応できるかなあとも考えつつ、クラウドが利用できるならGoogle BigQueryやAWS Redshiftなどの利用も想定範囲内。オンプレならHPのVerticaや、今どき感あふれる”SQL on Hadoop”な製品も非常に魅力的で、Cloudera ImpalaやPresto、ベータながらもApache drillなども興味深い所。

そんな中、PivotalジャパンさんがHAWKの解説をするとの事で、これは行かねばと聞いてまいりました。

そもそも”HAWK”って何ぞやというと、Hadoopの商用ディストリビューション”Pivotal HD”で稼働する標準SQL対応の”SQL on Hadoop”データベース。
Javaではなくネイティブのバイナリーで提供されるのと、処理の間にMapReduceを使わず、中間演算結果もメモリ上にストアしておくため、HIVEと異なって演算時のオーバーヘッドを回避する事によって高速化を図っているとの事。

もともとはGreenplum DBのエンジンで、データソースをHDFSに対応させたという経緯があるため、最速を求めるなら、HDFSのオーバヘッドの分GAWKの方が不利になるので、HDFSから(ローカルファイルシステムでデータを管理する)GreenplumDBにロードした方が良いらしい。

事例紹介ではMicroADさんの広告効果分析で採用されたとの事。MicroADさんはバックエンドにIBMさんのPureData(旧Netezza)に、フロントはSPSS Modelerと、大変お金持ちな構成が非常に羨ましかったのですが、ModelerからHadoopのデータに直接アクセス出来るようにしたかったからとの事だそうで。

HIVE/Pigも便利とはいえMapReduceを介するオーバーヘッドは大きいし、”SQL on Hadoop”もこれから良い製品がどんどん出てくるんじゃないかと期待するなか、HAWKも非常に高いポテンシャルを持った製品と思いました。価格がそれなりにするので、コミュニティー版のようなカジュアルに利用できる設定が無いのが非常に残念なんですけどね。

UGG偽ブランドECサイトでの買い物に注意!

たまたま友人からFacebookで偽ECサイトの調査を無茶振りされたので、せっかくなので共有しようかと。この手のサイトは、ちょっと前はレイバンのサングラスやスーツケースが多かったのですが、最近はUGGのブーツをよく見かけます。昔は見るからにサイトが偽物っぽくて、直ぐに見分けがついたのでしたが、近ごろはサイトを作る側もレベルが上がっていて、EC初心者は騙されるくらいのレベル感になっています。

さて、今回のターゲットはこちら。

http://uggstore.jpn.com/

UGGの偽サイト

UGGの偽サイト

ドメインが”jpn.com”という時点で怪しいのですが、以前はwhoisというサービスでドメインの所有者情報を調べる事が出来たのですが、最近は情報保護のため、ほとんど公開されなくなりました。(実際に調べてみましたが、やはりこれといった情報は無し)

トップページをつらつら見ていると、プライバシーポリシーがおかしい事に気づきます。

偽UGGのプライバシーポリシー

偽UGGのプライバシーポリシー

ここで出てくる「インポートブランドロータス」って何でしょう?下の注を見ると「UGG JAPAN」が運用母体らしいのですがミスマッチです。(「インポートブランドロータス」は別途に検索すると、北海道のインポートブランドショップという事が分かります)

さて「会社の概要」を確認しますと、

結局「UGG JAPAN」は不明なるも、「株式会社アグ(UGG)ブーツ」なる会社を名乗っています。ただ、住所が名古屋なのに電話番号が 03-xxx-xxxx とはどういう事でしょうか?

 

適当にアイテムを購入するつもりでカートに入れて決済の手順に進んでみますが、上のアドレス欄に注意してください。SSLでの暗号化がされていません。個人情報を入力させる画面でSSL対応していないサイトで買い物するのはアウトです。(さらに言えば、消費税の処理をしてないですね・・・)

その他、商品説明などで不自然な日本語が混ざる事があります。最近は少なくなりましたが、それでもいくつかは残っているようです。また、中国語の簡体字(日本語では目にしないような漢字)が混ざる事もあります。(昔はソースを見るとフォント指定が簡体字のものだったりしましたが、こちらも最近は対策されているようです。)サイトのいろいろなページを見ていると、商品紹介文はどこかのサイトからスクレイピング(別のECサイトからコピー)していると思われますので、それなりに整った日本語になっていますが、それ以外のページで怪しげな日本語が散見されます。

サイト自体はこんな感じで怪しげな所が見られるので、こんなサイトでは買い物をしない事を強くお勧めします。

せっかくなので、もう少し調べてみます。サイトのURLが”http://uggstore.jpn.com/”という事で、これ以外のサブドメインってどうなっているのか調べてみたい。以前はDNS(Domain Name Server)に問い合わせると一覧表示される場合もありましたが、こちらも最近は情報公開を避けるようになっています。このため、適当に文字列を指定してアクセスしてみるのですが、例えば http://ugg.jpn.com や http://uggboots.jpn.com でサイトが反応します。後者ではまるっきり同じコンテンツで運営されていますね。サイトのホスト名からIPアドレスをnslookup/digで検索すると同じであることが分かります。

さて、ドメイン自体はどうなっているのでしょうか。http://www.jpn.com にアクセスすると、こんなページが表示されます。

普通の会社はドメイントップのページを、こんな風にはしていないですよね・・・

ページのソースを見てみますと、以下のようなGoogle Analytics の計測タグが見て取れます。

<script type="text/javascript">// <![CDATA[
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
// ]]></script>
<script type="text/javascript">// <![CDATA[
try {
var pageTracker = _gat._getTracker("UA-3398405-34");
pageTracker._trackPageview();
} catch(err) {}
// ]]></script>

 

ここの “UA-3398405-34″という部分が、サイトを識別するためのコードになります。これはUA-3398405というコードを持つサイト管理者の34番目のサイトという事です。

では、このコードで検索をしてみます。いくつか検索サイトはありますが、SameID.net で調べてみます。

少なくとも56ドメインを運用している事が分かります。jpn.com 以外にも cn.com , kr.com , uk.com, br.com など、国を表すようなドメインを所有しているようです。日本以外の国でも同じように偽サイトを運用しているのでしょうか・・・

さて、同じようにショップ側のソースを見ていると、以下のようなコードが混ざっている事に気づきます。

<script language="javascript" type="text/javascript" src="http://js.users.51.la/17566674.js"></script>

このJavaScriptを読んでみると、アクセス解析ツールで調べるような情報を “www.51.la”というサイトに送っている事が分かります。さて http://www.51.la にアクセスしてみると・・・

でました!中国語の無料アクセス解析ツール!!

昔のこの手の偽ブランドサイトは、とにかく個人情報を入力させ指定の口座に入金させるかを狙ったものが多かったのですが、最近はクレジットカードの処理まで出来るようになっているようです。入力したらアウトで、あとで気づいても事後の取消処理は非常に困難なので、信用できないサイトにクレジットカード情報を入力するのは、どんなに商品が安くで魅力的でもNGです。ダメ・絶対。

銀行の偽サイト(フィッシング詐欺)も増えているようなので、お金が絡むサイトでは、サイト運営会社の情報を見るのと、SSL証明書に登録されている会社情報をチェックすることは必須ですね。

ラジオ英会話を録音してスマホで聞く方法

英語の勉強をする際に安価で便利な教材の一つとして、NHK教育のラジオ講座があります。番組自体は15分と短くて内容も自分のレベル感にあったプログラムが用意されているのでお勧めなんですが、放送の時間に合わせてラジオに向き合うのは、放送スケジュールにもよりますが、なかなかシンドイ時があります。

自分の都合で聞きたいとなると録音する事になるわけで、そのためにラジオサーバーとかが販売されているわけですが、なかなかに高価なブツでして、ちょっと試してみるにはツライものがあります。

そんなわけで、サイマル放送からの録音ツールを作るかと思っていたら、すでに“Radika”というツールが公開されていましたので、長らく使わせて頂いておりました。ただ、最近はメンテされておらず、録音エラーも頻発するようになったので、さて困ったなと思っていたら、“Radikool”というツールがありました。ネットラジオの聴取/録音/予約録音 ができる無料のソフトで、Windows Vista/7/8/8.1で使用できます。環境の要件としては、最新のAdobe Flash Player、NET Framework 4.5。まずは”NHKらじるらじる”、”Radiko”がIEで聞けることを確認します。

インストール自体は、リンク先の公式ページをご覧いただければ記載ありますが、インストーラー版を利用するのが楽で良いと思います。インストール中に各サイマル放送の確認ステップがありますが、NGの方はネットワークかFlash Playerに問題があると思いますのでチェックしてみてください。(Flash Playerを新規インストールされる方は、バンドルアプリを同時にインストールしようとしますので、不要ならばチェックを外すのを忘れずにw)

次に、聞きたい放送の録音設定を行います。”ラジオ英会話”の場合はこんな感じ。

radikool予約画面1

iTunesを使っている人は”iTunesに登録する”スイッチを入れておけば、録音終了時に登録されますので、普通に同期を取っていればコピーされているでしょう。

録音形式は特に希望がなければmp3のままでいいんじゃないかと思います。ファイル名も好き好きですが、私は以下のようにしています。

[TITLE][SYEAR][SMONTH][SDAY][SHOUR][SMIN][INFO]

これだと、”ラジオ英会話「電話で手配する」(1)201501120645.mp3″のようなファイル名で保存されます。

radikool予約画面2

また、アーティスト名は”ラジオ英会話”で固定のテキストにしておくと、再生プレイヤー側での整理の時に便利だと思います。

ここまでで、録音の設定は完了です。

次にスマホへの転送ですが、ファイル単位でちまちまとコピーしていってもいいんですが、やはり自動化したいので、ネットワークドライブを使います。私の場合はDropboxを使っていますが、MicrosoftのOneDrive、GoogleDriveなどを使ってもいいです。

設定はRadikoolの設定画面から、録音設定>録音ファイル設定>保存パス にて、Dropboxの同期元フォルダを設定します。

radikool設定画面3

私の場合には、”ラジオ英会話”というフォルダを作って、その中に録音ファイルを保存するようにしています。

もちろんスマホ側にもDropboxのアプリを入れて、フォルダの同期設定をしておいてください。設定がOKであれば、録音後に同期処理が勝手にコピーしてくれます。

聞く際にはDropboxアプリを立ち上げ、転送された録音ファイルをクリックすると、何らかのプレイヤーで再生されると思います。万一、プレイヤーがインストールされていないような場合には、mp3を再生できるアプリはいろいろと転がっておりますので、VLCプレイヤーでも何でもお好きなものを入れていただければよろしいのではと。

ちなみに1放送あたり14MBくらいになってますので、契約プランに応じてWiFi利用時のみに同期するなど、パケ死しないようご注意ください。以上、くれぐれも自己責任でご利用くださいませ。録音ファイルを公開するなどダメ、ゼッタイ。

技術文書を書く際に注意すること

昨日、永江一石さんという著名なマーケターの方の文章術の記事がSNSで回覧されてきたわけです。

秘伝?? 文章が巧くなる方法について

読みやすい文章を書くという点では、”てにおは”や”です・ます”を揃えるという基本から、主語・述語の関係を整える。極力、文章を短めにして言い切りの形にするなどの作法があるわけでして、文章のレビューをする際には、自分でも小声で音読することは多いです。音読重要。

さらに、技術屋向けの文章というのは、正確に意志疎通を行うという目的があるため、誤解を招くような表現を避ける工夫が必要になります。読み手に対して、ロジックを明確に提示したり、複数の解釈を与えない文章が必要になってきます。そうでないと、例えば要件定義や設計において、完成後に「実はこんなつもりじゃなかったのに・・・」という事故が起こりうるわけです。

  • 結論ファースト。理由や詳細事項は後に列挙する。
  • ぼかした表現に逃げずに、できるだけ明確に書く。行間を読ませない。
  • 自分の「意見」と「事実」をごっちゃにしない。
  • 事実を記述する文はできるだけ名詞と動詞で書き、主観に依存する修飾語を混入させない。
  • 表記は統一する。特に多義語は注意(例えば「クライアント」は、「お客様」にも取れるし「利用者が使う端末」「利用者が使うアプリケーション」など、いろいろな意味で解釈できる。)

今日、お客様とのミーティングの際に、表記をめぐっての誤解がありまして、先方の意図の確認にずいぶんと時間を使ってしまいました。自分への戒めも兼ねてのメモです。

EvernoteとGoogle Keepを使った情報管理

皆さんはEvernoteを使ってますでしょうか?自分の場合では仕事や日常のメモなど、多岐に渡って利用していましてEvernoteが無い生活はツライというレベルで依存しています。以前はEvernoteだけだったのが、最近ではGoogle Keepを併用するようになって、よりストレスが軽減されたと感じています。

Evernoteのメリット

Evernote以外にも多くのクラウドストレージやGoogleドキュメントやMicrosoft Officeオンラインなどのオンラインドキュメントのサービスがあります。そんな中でEvernoteを選ぶメリットはいくつかあります。

1. デバイスとの連携が便利

Scansnapとの組み合わせは素晴らしく、紙の資料をPDF化して、そのままEvernoteに放り込んでくれる機能が便利。そのまま検索も可能。ペーパーレス化に貢献してくれます。

2. 検索機能が素晴らしい

特に名刺のスキャンは最高で、特に分類しなくても会社名や名前の一部で検索できるのが楽ちん。名刺に合わせてノートにコンタクト履歴などを残しておけるので、簡易CRM的な利用も出来るのがステキ

3. タグによる横串検索

オンラインストーレージでは、ハードディスクと同様にフォルダ/ファイル名で管理するしかないのですが、ノートに張り付けたファイルでは任意のタグがつけられるので、関連事項のメモや資料を探すのに重宝してます。

4. Webのクリッピング機能が素晴らしい

調べものをしていると、あとでまとめて読み替えしたいものなどが出てきますが、全部ブックマークしていると、あっという間にブックマークが肥大してしまいます。これらの気になる記事をクリッピングツールを使ってEvernoteに放りこんでおいてます。以前はかなりレイアウトが崩れてしまう事がおおかったのですが、改良されて、ページ中の記事だけを選択してクリッピングしてくれるなど、洗練されてきています。

Evernoteが苦手な事

検索の都合上、極力、情報をEvernoteに一元化しておくようにしているのですが、だんだんとクライアントのツールが重くなってきているのが難点。PCだと常時起動しておけば良いのですが、スマートフォンでは都度起動するのがシンドイ。特に思いつきをメモるようなケースでは起動の時間がすごいストレスとなります。これを解消するために”PostEver”のような入力支援ツールを利用されている方もおられるようで、それはそれで良いと思います。

自分もいろいろと支援ツールを使ってみたのですが、オフラインでは利用できないものや、やはり起動のストレスが解消できないものが多くで、あまり満足できるようなモノがありませんでした。メモ系のツールもあれこれ試してみましたが、これといったものが無くて困ったなあと。

起動が速い”Google Keep”

そのような中でアイディアのメモに”Keep”を使うようになったのですが、これが非常の具合がよろしい。

  1. 起動が素早く、思い付きのメモには良い
  2. スマートフォンとPCでメモを同期出来る
  3. 写真なども保存できる。通知の機能もあり、

つまりは軽量版のEvernoteとして利用できるんですね。リマインダーとしては、人によってはこれで十分な人もいるかもしれない。これでEvernoteと連携できればいう事ないのですが、今の所は使い分けをしていて

とっさのメモはGoogle Keep ⇒ 後からKeepのメモをまとめて、Evernoteに記録

という流れが自分に向いていました。この「メモをまとめる」というプロセスで一旦、アイディアのネタを評価するというのがよいです。転記などの手間を考えると非効率のようにも思えますが、Evernoteに一本化していた時はメモった事に安心して、あとはそのままにしている時が多かったので、強制的にメモを見直さざると得ないわけです。

Evernoteでのメモに不満を持っている人は試してみてはいかがでしょうか。何より無料なのがステキ。

2015年の抱負

あけましておめでとうございます! 2014年はフリーランサーとして試行錯誤の1年間でしたが、いろいろなプロジェクトへの参画やクライアントの企業様のおかげをもちまして、なんとか年を越せました。今年もよろしくお願いいたします。

新年の抱負として、今年一年の目標を掲げておこうと思います。年末に振り返った時に困惑しないように頑張ります。

1.ブログを100回更新します

放置気味だったこのブログを、2015年中に100回更新します。仕事がらみや技術関連がらみ出ないと書きにくいなあと思って自らハードルを上げてしまって逆効果になっていたのですが、まずは関心を持った事などについてアウトプットの量を増やすようにします。

2.Webサービスを立ち上げます。

昨年はニーズの調査や技術面での調査が中心になったのと、開発案件などの対応で時間が取れなかったため、今年は形にしていきたい。内容はまだ秘密。

3.英語の勉強に力を入れます

フィリピン英会話学校の設立の支援をしている事や、Twilioハッカソンの優勝ご褒美のUSでのプレゼンを無茶振りされているので、その準備も兼ねて。

4.通訳案内士を受験します

年に1回のチャンスというのがツライ。フューチャーセッションなどでも発表し、昨年受けるつもりでいたのですが、いろいろとトラブルが重なって受験できず。英語はともかく、地理や歴史の勉強をどう進めようか思案

openLDAPのPerl Backendをいじってハマった話

話の発端としてはtagomorisさんのページを見た某社の方より、こんな感じのものを作って欲しいんだがというご相談を頂きまして着手しましたところ、非常にドハマりしましたので後に続くかもしれない方々にメモメモ。

オンラインドキュメントも相変わらず”LATER”のままです。どこかに更新されたドキュメントがあるんじゃないかと期待して探し回ってみましたがダメな感じです。もう忘れ去られた感がアリアリしております。何かしらの参考資料を探してみても、これと言って見当たらず、”LISM”というPerl Backendを利用したOSSの統合認証のソフトウェアがあり、良くぞ作ったなあという感もありまして参考にさせてもらいました。ただAdminツールにディスコン気味のEthnaが必要とかで、このままではインストールも困難だったりする。

openLDAP関連の書籍も、すでに書店では事実上2冊しかない。入門LDAP/OpenLDAP―ディレクトリサービス導入・運用ガイドLDAP -設定・管理・プログラミング-だ。前者はまだ何とか使えるものの、後者は発行が2003年だ。また、どちらもopenLDAPそのもののインストール、設定がメインで、バックエンドの作成にはちっとも触れられていない。洋書も何冊かチェックしてみたが、これといって参考になりそうなものもなく。

「man 5 slapd-perl すると、ちょっと詳しく書いてある。興味がある人は読んでみよう、というか、読まないと何もできない。またOpenLDAPの tarball を展開した中の servers/slapd/back-perl/SampleLDAP.pm がサンプルなので、読んでみるとなんとなく雰囲気がわかる。(雰囲気しかわからない。)」の状況からは一歩も進んでいない状況です。

とにかく試して、動きを見るのが一番という事で、SampleLDAP.pm を動かしてみることに。

ソースからビルドする場合には –enable-perl をつければOK。ディストリビューションの配布パッケージによっては、これが有効になっていたり、なっていなかったりするので、お使いの環境のパッケージを調べてみてください。(ちょっと脱線するが、id2entry.dbが無いというバグに私もハマった。お気を付けください。あとディストリビューションによっては、make dependしたときにPerlのモジュール不足で止まる事があります。結構、心が折れそうになりますがガンバ!)

で、slapd.conf には、次のように書く。

############## perl backend #############
database        perl
suffix          "dc=example,dc=com"
rootdn          "cn=Manager,dc=example,dc=com"
rootpw          xxxxxxx
perlModulePath  /path/to/handler/module/dir
perlModule      SampleLDAP

この場合、 /path/to/handler/module/dir に SampleLDAP.pm ファイルをコピーする。後は普通のopenLDAPの操作と同じで ldapaddでLDIF情報追加し、ldapsearchで検索する事が出来る。おそらくはここまでは問題なく進むと思うのだが、時々slapdが落ちる現象が確認される。ldapsearchを叩いていると時々反応が無くなる瞬間があるのだが、slapdのプロセスを見ると見事に落ちている。

いろいろ調べてみた結果、SampleLDAP.pmにはbind()の記述が無く、slapdがこのリクエストを受けると落ちるという事が分かる。取りあえず、SampleLDAP.pm の一番最後にでも次のようにダミーでもbind()を入れておくと落ちなくなることが分かる。

bind(){
     return 0;
}

SampleLDAP.pm の動きについてはコードを見てもらえればわかるが、持っている情報をどっと吐き出す感じの動きになっている。ただ、検索のフィルター条件にちょっと込み入った文字列を指定してもslapdが落ちたりするので、結構シビア。うーん・・・
(この後もコードをいじっていると、「なぜこれで?!」といった、結構、理不尽に落ちることが多かったので、こまめに動作チェックをされることをお勧め。謎のプロセス停止が頻発する場合には、configureする際に –with-threads=no をつけると安定するかもしれない。)

私の場合には、後続のデータソースから認証情報を引っ張ってきて、これを使って認証させるわけです。スキーマーがposixAccount位なら、LDIFに入れるべき情報を全部データソースの中に突っ込んで、リクエストがあるたびにそれを参照して応答を作るか、パフォーマンスの問題が出てきそうならキャッシュの仕組みを作るとかで対応できると思う。search(), bind()のなかで認証情報を確認して、それぞれLDIF形式で応答内容を作ればOK。

全体にわたって、Perl-backendだからといって、何か便利ライブラリとかあるわけでもなく、ほとんど素でslapdからデータが引き渡されるので各LDAPコマンドごとに処理ロジックを実装していく必要があります。特に面倒なのはsearch()のFilterStringの部分の処理で、あの癖のある形式での条件指定をひも解かないといけないのですが、これといったツールもなく面倒です。slapdからの応答を作成するのに関しては Net::LDAP::LDIFが役に立つでしょう。きっと。

(さらにsambaをサポートしようとすると、Perl-Backendだけで解決しようとすると、かなりヒイヒイいう事になります。私は諸般の事情で諦めざるを得ず、裏にPerl-Backendではないslapdを併用してリクエスト/応答をPerl-Backendで中継する方法を取りました。)

認証というと最近はActiveDirectoryの方が断然利用されていて、openLDAPも影が薄くなりつつありますが、何かの事情で使う事があればご参考になればいいなと。