Translate

2011年11月24日木曜日

パスワード変更CGI poppass-cgiを使ってみる

Ubuntu Server 10.4.3 LTS上にroundcubeという
Webメールパッケージを入れて
静的NATでインターネット経由で
メールを読み書きできる環境を作ったのだけど
roundcubeの機能に
パスワード変更機能というものがそもそもない..

うーん、
パスワードは定期的に変更する
chageコマンドでアカウント設定しているから
どうにかインターネット経由で
パスワード変更させたいんだよなあ..

新しいroundcubeにはプラグイン機能があるらしく
そこにパスワード変更機能とか入れられるのかもしれないけど
LTSでパッケージ入れているから
roundcubeも最新版というわけではないんだよね。

しょうがないので
Unixパスワードを変更するCGIを探してみた。

するとpoppass-cgiなるパッケージを見つけた。

うーんpoppass?
!ああEudoraにあったやつだ。
とするとサーバ側にpoppassdが必要か。

で、
$ sudo aptitude -y install poppassd poppass-cgi
$sudo /etc/init.d/apache2 restart

したら
http://mailserver/cgi-bin/poppass
で設定ファイル一切弄らないでパスワード変更できるようになった。

画面は正直2世代くらい前の
ふるくさいデザイン..


だれか
いいやつつくってくれないかなあ..
パスワード忘れた時の対応とかもあるといいなあ...

sa-update -Dが動かない

SpamAssassinを使っているのだけど
なんか
sa-update -Dを実行しろと
うるさくメッセージがでてくる。

手動で実行してみたが
DNSが引けない云々のメッセージが表示される。

どうもproxy経由でWebアクセスする環境の場合は
使えないようだ。
環境変数http_proxyをセットしてもだめだった。

しょうがないので

# export http_proxy=http://proxyserver:9999
# wget http://www.apache.org/dist//spamassassin/source/Mail-SpamAssassin-rules-3.3.2-r1104058.tar.gz
# wget http://www.apache.org/dist//spamassassin/source/Mail-SpamAssassin-rules-3.3.2-r1104058.tar.gz.asc
# wget http://www.apache.org/dist//spamassassin/source/Mail-SpamAssassin-rules-3.3.2-r1104058.tar.gz.sha1
# sa-update --install ./Mail-SpamAssassin-ueles-3.3.2-r1104058.tar.gz

してダウンロードしてくるところは手動でwgetして
sa-updateを実行したら
でてこなくなった。






sa-updateは何やっているのだろう..

2011年11月9日水曜日

vmxイメージをコピーして実行したら「ロングモードに対応していません」と出た



Windows7(64bit)の入っている
マウスコンピュータ社製デスクトップPCへ
VMware Player4.0を入れて
Ubuntu Server10.4.3 LTSをこの上で動かしていた。

で、このvmxほか一連の仮想環境ファイル群を
そっくり
ThinkPad x201s (Windows7 64bit)上
にコピーして
VMware Player4.0で起動させようとしたのだけど..

「ロングモードに対応していません」
云々のメッセージダイアログが出て
起動できない..

調べると
どうもBIOSをいじらないといけないらしい..

でしょうがないので
起動時F1を押してBIOSを開き
Config>CPUの
「Interl(R) Virtualization Technology」をEnabledに、
「Inter(R) VT-d Feature」もEnabledにして
保存・起動させて
再度「仮想マシンの再生」を選択したら
起動した。

けど、
今度はNICが動いてない...
/etc/init.d/networking restart したらエラーが出た。


でまたGoogle検索してみたら

vmwareでのubuntuのコピーはネットワークが接続できない!?

をみつけた。

ここにあった手順で
lshw -C networkして
logical name行に出ているネットワーク名を見つけ、
/etc/udev/rules.d/70-persistent-net.rulesを編集して、
既存のeth0をコメントアウトして
さきほど見つけた名前のデバイスのNAMEの値を
eth0に戻してrebootすると

やっともどった..


じつはとあるサーバの運用者用教育環境で
各自自習できるようにして、
仮想ファイルをコピーさせて使わせようと思ったけど、

..こりゃめんどくさそうだなあ..


全員のアカウントを
vCenter上に作るよりましかと思ったが..


..もうちょっと考えよっと..

2011年11月2日水曜日

ADKはAndroid Development Kitの略ではありません




Google Developer Day 2011のセッションの1つに
USBを使って別のハードを操作させる話があった。

以下のURLにあるような
https://store.diydrones.com/ProductDetails.asp?ProductCode=BR-PhoneDrone
ボードをUSBケーブル経由で
Androidデバイスにつないで
アプリからこのボードを
ボードからAndroud上のアプリへ
双方向でうにうにできるようにする
開発キットのはなしだ。


タイトルにあるとおりADKのAはAndroidではない。
USB "Accessory"をさす。

USBは電源供給をホスト側がするが、
携帯電話が中心のAndroid側は
ほかのボードに500mA@5Vなんて電力を
供給することはできない。

電源についてはアクセサリのほうがホストになる。

ボードはいくつかでているのだけど、
そのなかにはサーボモータやLED、リレーなどを持つ
ものもある。
その利用例として
COTORITOというのがある。
http://cotorito.net/
家で小鳥を鳥かごに買っている人が
外から小鳥の様子をみたり
えさやりしたりする操作を
鳥かごにAndroid携帯とボードを用意し、
(たぶん)WiFiや3Gとかから外で別の携帯から操作
するというもの。


#問題は需要があるかどうか、で
#会場には小鳥飼っている人がたった1人しかいなかった..


Androidからデバイスを操作するアイディアは
一見いい葉に見えるのだけど、
Android携帯をコントローラにするには
あまりにも頭がよすぎて過剰品質だし
コストがたかい過剰コストになる。

生産性を考えると
基盤を設計して
コードをアセンブラやCで書くほうが
圧倒的に早く安くあがる。


サーボモータなど携帯上に用意されていない
デバイスをJavaで簡単に操作ができること
だけど..

教育用か(だったらマインドストームで十分だ)、
テロリスト的用途しか思い浮かばない..



..危険な記事になりそうなので
ここでやめておこっと..



Googleのクラウドコンパイル環境gomaの話を聞く



gomaというのは
Google社内で使ってる分散コンパイル環境を
さす。

前年DevFestではgoの話をしてくれた
鵜飼さんのGDD2011でのテーマだ。
#漢字が難しかったので、この人だけ
#覚えていた


社内でツールなどを作ると、
Googleでは社内評価とかのコメントがもらえるらしく
"goma is tremendous productivity boost!"
「gomaは生産性をあげてくれる」という評価をもらったそうな。

余談だが、Yahoo翻訳にかけると
「アヘンは、相当な生産性後押しです!」と出てきた。
gomaって"アヘン"って意味があるらしい..

セッションで
鵜飼氏はgomaには特に意味はない
と最初に行っていたのはこのことだったのか..

こういう英語ニュアンスギャグを
さりげなくわかる大人になりたかった..

またえいご漬けやり始めようかな..

(追記)
と、書いたのだけど、
海外出張経験のある人にきいたら
アヘン=opium
 でgomaなんていわない
たぶんケシの実を砕いたゴマ状態の粒を
そういう人がいるのかもしれないということだった。
見間違いかなとおもってYahoo翻訳で
再度翻訳しなおしてみたが
まだgoma=アヘンってでてくる
..よくわからない..
まあ本論とは関係ないから
ほっとこうかな...

話の流れは
もともと鵜飼氏はChroniumプロジェクト(Chromeブラウザ)に
入っていてChromeのコンパイルに時間がかかるから
分散コンパイル環境を作ったそうだ。

Googleでは
コーディング、コードレビュー、リポジトリの3つの状態を
くるくる回していて各々の間で各自環境でのビルド・テストしてレビューを
受け、LGTM(Looks goodうんたら)という評価受けたらリポジトリに入って
Buildbotによるテストして、再度デザインドック(設計?)してコーディング..
していく。

Chromeはいろんなプラットフォームで動作させる必要があるので、
buildbotでのテストはいろんな環境のバイナリを作ることになる。

しらべると3ヶ月で10000回、1日で110回、13分に1回コンパイルされる。

土日はGoogle社員も休むので(休むんだ..)
実際は平日200回、これだと7分半で1回になる。

Chrome関連コミュニティのある人がバスの中で
ノートでコンパイルを開始したら
コンパイルの前に電池が切れたという笑い話があるくらい
コンパイルに時間がかかる。

具体的に言えば、
Google社内でよく使うタイプのPC
Xeon 2.67GHz 6コアで93分。

パラレルビルドで対応してみると、
4パラ23分、8パラ16分、12パラで15分と
このあたりでサチってしまう。

これはコンパイルは時間だけでなく
CPUリソースも食うから。

#ドラゴンブックを思い出す..

なので、コンパイル中
だれかがコミットすることはよくある日常茶飯事
なんだって。

こうなるとビルド中のデグレなんてのも
人間だもの
少なくないのだろうなあ..

で世の中にはdistccなる分散コンパイラ
http://code.google.com/p/distcc/
があるので試しに使ってみたそうな。

distccは手元でプリコンパイル処理
(ヘッダファイルとソースをつないだりするやつ)
を分散させずローカルでやるらしい。
1ファイルインクルードファイルが増えると
それを使ってるソース数分、nノードだとさらにn倍され
同じデータを重複して
送信されてしまう。

処理より通信のコストが高いのは当然なので
この通信増は厄介そうなのは聞いていても
なんとなくわかる。

でdistcc-pumpという
プリプロセスもサーバでやっちゃう機能をつけたら
linuxカーネルコンパイルで50%、Sambaコンパイルで
200%も向上したらしい。

ただ、distccもそうだけどdistcc-pumpは
十分な数のサーバを正しくセットアップする必要があって
環境のセットアップが大変なんだそうな。


Google社なんだからクラウドリソースがたくさんあるわけで
クラウドを使おうよとなったらしい。

最初はGoogle社有名な20%時間内ではじめて、
Special Projectになって、
Chromeで使うようになったらしい。

コンパイラも都度送らないで
予めコンパイラは幾つか決め打ちで用意して
クラウド環境(Linux)にうかべ
同じコンパイルは再利用出来るようなキャッシュをつくって
ローカルにはcompiler-proxyを作って
makeの時にノード数を設定できるようにして
巨大ファイル送信は2MBごとにわけて
もちろんこの単位でキャッシュが効くようにして
とアーキテクチャは地味..^H^H堅実なかんじにできている。

コンパイラやると禿げると某氏が言っていたが
地味に針をチクチク入れていく感じの作業だったのだろうと
想像する。

MacOSのコンパイラは最初クロスコンパイラでやっていたが
WebKitのコンパイルは通るが動かない
なんてことがでてきた。

で考え方を変えてmaloaderなるMacOSシステムコールを
Linux側の口にマップするようにして対応したり、
HTTP通信失敗時の時を考え
ローカルでもコンパイルをやって
答えが帰ってこない場合はローカルのオブジェクトを
使うようにしたり
レース編みの針の入れ方を部妙に変えるみたいな
作業があったそうだ。


gomaは
外部公開することはなさそうだけど
Google社員が一見華やかそうに見えて
結構地味な作業をこつこつやっているんだな
ってことがよくわかった。


Google TVの話を聞く




米国内だけでしかリリースされていないせいか
全然話をきかなくなった Google TV。

Google Developer Day2011でセッションが1コマだけ
あったのでききにいってきた。

#人気のあるIgnite裏に配置するあたりの
#Googleの日本でのバックギアっぷりが
#気になっていたりする..

聞いた話をメモしていたので
間違いがあるかもしれないけど
とりあえず得た情報をメモしておく。

#間違いがあれば
#コメントに書いていただけると
#ありがたいです。

・今のところ米国のみ
・ソニー、ロジテックと後1社がリリース
・来年にインターナショナルでローンチしたい
・USでは人口よりTVの台数のほうが多い
・1日平均視聴時間も日本3.5~4時間に対して米国5時間
・米国ではとりあえずつけているらしい
・最近のTVはスマートTV、インターネットにはつながるしインタラクティブ
・Youtubeを大画面で見れるだけでもすごくないか
・Google TVはAndroidマーケットでアプリが買える
・AppleTVはまだAppStoreがでていない(まだiOSでないらしい..でもやるんじゃないのかな)
・作り方はTabletアプリに似ている
・UIはTablet/携帯と基本的にデザインを変える必要あり
・感覚的には携帯とTabletの間くらい
・シンプルでクリーンに
・短いセンテンス、重要な情報だけ
・Tabletと同じで9-パッチイメージを使おう
・UIデザイナを雇いましょう!
・ダークなバックグラウンドでデザイン
・Boldなどはっきりしたフォントで
・3m離れてでも読めるように
・画面デザインは横にペインを置こう
・左はじをglobal、次にContext、でdetailを配置する
・ICSならFragmentで置き方を変えるようにすればGoogleTV兼用のアプリが作れる
・Google TVのデバイスは基本D-pad(上下左右ボタンの真ん中に決定ボタンのある感じ)
・斜め上の動作は苦手だから、無いようにつくろう
・画面は720p(1280×720)213dpi(こっちがメイン)と、1080p(1920×1080)320dpi
・右下右横は見えないことがあるのでそのつもりでデザイン(?)
・ダイナミックレイアウトを使おう
・イメージでヒープメモリをどか食いするよ
・1枚8MB(HT-03Aなら1枚でパンク寸前)
・TV APIが使える、パーミッションでREAD_CHANNELを設定しよう
・位置情報はお寒いよ
・ポスタルコード(郵便番号)をユーザに入力させて大体の位置を取る
・パーミッションではコアレスだけサポート
・Bluetoothキーボードは使えるけど使うアプリはGoogle社に相談してね
・NDKがまだ使えない
・WiFi/Ethernetは使えるけどWiFi中心になるかもね
・個人情報は守るようにつくろうね(事前に何に使うか説明、インドは事後は☓らしい)
・もちろん消してと言われたらすぐ消せるようにしておく
・タッチスクリーンのTVもでてくるよ(手垢でよごれるんじゃ..)
・Tabletや携帯併用アプリでマーケットへ上げる場合かならず16:9のスクリーンショットを入れること


どうもアプリが全然足りてないような
ニオイをスピーカの語り口から感じた。

話の中で、
ちょっとまだ携帯やTabletに比べ機能が足りない。
位置情報はGPSがないからしょうがないけど..


Google TVで動作するアプリを
今作ればヒーローになりやすいかもしれないが、
日本ではGoogle TV売ってないし
そもそもセットトップボックス文化ではないから..

本音はすべてのブラビアはAndroidベースでっせとか
言いたいのだろうなあ..


個人的に
今回のGDD2011の裏メインテーマは
「デザイナをちゃんと雇え」
と受け取っていたのだけど
ここでもきちんと雇いましょうと
いっていた。


GoogleTVとAppleTVのリモコン比較してみたら..

↑ソニーのリモコン..飛行機の機内リモコンでももうちょっと綺麗にまとめると思うぞ。










↑AppleTV、最初古いShuffleの筐体でも使ってるのかと思った、こんなリモコン提供してもAppleTVは残念ながら売れてるとは言えないんだよなあ..




..そらそういいたくなるのも
分からないでもないか..

Zeemote JS1をWindows7 PCで使ってみる




昨日Google Developer Day2011へ行った。

そのときZeemote JS1という
ゲームコントローラをもらったのだか
手元にまともなAndroidデバイスがないため
(まともでないのばっか)
とりあえずWindows7 PCのマウスにしようと
Bluetoothを有効にしてみた。

するとすぐに「Zeemote JS1 H」というデバイス
はみつかったのだが、
(ちなみに初期状態なのでキーは0000)
ドライバがない..

でGoogleってみたら
http://www.zeemote.com/uk/controllers/
に「Zeekey for Windows」というのを見つけた
そこでこれをダウンロードしてインストール、
ソフトウェアを起動して「Controller: Disconnected」
を押して対象のデバイスを選択、つぎへどんどんすすんだら
有効になった。

速度も変えられるみたいだが、
やっぱり使い慣れたマウスのほうがいいなあ..

握って自分側のボタンが右クリック、外側が
左クリック。

プレゼンの時に使えるかなと思って
やってみたが、
すすむのはいいけど
戻りが..めんどくさい。


もうすこしZeekeyでスピード調節しないと..


..で、ここで飽きてしまい、
結局、外してしまった..

既存アプリケーションをK8s上でコンテナ化して動かす場合の設計注意事項メモ

既存アプリをK8sなどのコンテナにして動かすには、どこを注意すればいいか..ちょっと調べたときの注意事項をメモにした。   1. The Twelve Factors (日本語訳からの転記) コードベース   バージョン管理されている1つのコードベースと複数のデプロイ 依存関係 ...