Archive for 2013年1月31日

Gentoo-Prefix上でMercurialのSSL関連エラー

Gentoo-Prefix@MacでMercurial使おうとしたら謎のエラー。

user@hogehoge ~/projects $ hg clone https://***.com/***
abort: Python SSL support not found

Python用のSSLが入っていないようだ。

とりあえずpythonをemerge -avしてみる。

taka@mobuild ~/projects $ emerge -av python

 * IMPORTANT: 3 news items need reading for repository 'gentoo_prefix'.
 * Use eselect news to read news items.

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] dev-lang/python-3.3.0:3.3::gentoo [3.3.0:3.3::gentoo_prefix] USE="ipv6 ncurses readline sqlite* ssl threads xml -build -doc -examples -gdbm -tk -wininst" 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB

おやおや、SSLフラグは入っている。おかしいなぁ。

と思ったらPython 3をemergeしていた。スロット分けされている2.7の方をemerge -avしてみると・・・

taka@mobuild ~/projects $ emerge -av "<=dev-lang/python-3.0"

 * IMPORTANT: 3 news items need reading for repository 'gentoo_prefix'.
 * Use eselect news to read news items.

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] dev-lang/python-2.7.3-r2:2.7::gentoo [2.7.3-r2:2.7::gentoo_prefix] USE="aqua ipv6* ncurses readline* sqlite* ssl* threads (wide-unicode) xml (-berkdb) -build -doc -examples -gdbm -tk -wininst" 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB

ビンゴ。sslフラグが入ってませんでした。

Gentoo Prefixはデフォルトではsslフラグ入って無いんですね。Python 3のほうは入ってるのに。まぁなんか事情があるんでしょう。

とりあえず無事にhg cloneできるようになりましたとさ。

 

Titanium Mobile で Facebookログインをするとき

AndroidとiPhone同時進行の案件をやっているので、唐突ながらTitaniumを使ってみることにした。

まぁなんか思ったより結構いろいろとできるのね。

それでとりあえずが最初に引っかかったところ。Facebookログイン。

見よう見まねでとりあえずログインボタン作って、Facebook Appに登録して・・・見たいな事を一通りしたらかなりあっさりログインまでできた。

が、問題が一つ。どうあがいてもWebView的なのがポップアップしてログインIDとパスワードを求められてしまう。

本当は端末にインストールしてあるFacebookアプリに引き継いで、そのセッション情報を使いたい。つまり、パスワードを何度も入れさせたくない、ということだったので、これだと困る。

いろいろとあさっていると、どうやらやりたいことはSingle-Sign-On (SSO) と呼ばれているらしいこととか、Facebook側の管理画面をちゃんと設定しろ、とか、拡張を使えば出きるよ、とかいろいろと情報がでてきたが解決できず。

最終的にたどり着いて (とりあえずAndroidに関しては) 解決したのが「Titanium.Facebook.forceDialogAuth」をfalseに設定すること。

これでとりあえずAndroidではうまく動いた。Facebookアプリが起動して、そこからセッション情報を引き継いでくれた。 (iOSは未確認。またFacebookアプリが入っていない場合も未確認。だがきっとうまく動いてくれるに違いない。違いない。)めでたしめでたし。

多分ちゃんとマニュアルを舐めるように読めばかいてあるんだろうな。あんまみんな悩んでなかったっぽいし。

iPadでも早めに試しておこう。

(参考: API for Titanium.Facebook.forceDialogAuth)

window.showModalDialog

JavaScript で簡単にModalDialogチックなのだそうとしてて、window.openとか使って適当にやろうかと思ってたけど、それ専用のAPIがあるんですね。知らなかった。

  • window.showModalDialog(url [, arg [, opt]]) – モーダルダイアログとしてURLを開く
  • window.showModelessDialog(url [, arg [, opt]]) – 非モーダルのダイアログを開く
  • window.dialogArguments – 与えられたパラメータ?
  • window.returnValue – 戻り値

呼出側は

var result = window.showModalDialog('./hoge');\

とやればいいし、ダイアログ側は閉じるときに

returnValue = {戻り値};
close();

とかやればいい。

Gnome 3 の nautilus でのファイルパスバー表示関連

(From: http://forums.fedoraforum.org/archive/index.php/t-270436.html)

  • 設定で固定化する→dconf-editor で org > gnome > nautilus > preferences で 「always using a location」をいじる
  • ショートカットキー→ CTRL + L (デフォルト)
  • フルパス入れる場合は / キーが使える

ibus-anthy

ひさびさにemerge worldをしたあと、例のごとくいろいろと不具合が起こるわけですが。

今回は日本語入力にそれなりにハマる。これはもう英語で過ごせというお告げか。

さすがにそれは無理なのでとりあえず調べてみる。
ibus-daemonのログをとってみる。起動したままibusのバックエンドをAnthyとそうじゃないやつで切り替えてみる。

$ killall ibus-daemon
$ ibus-daemon -v
IBUS-Message: 22:06:40.512056: Engine xkb:us:altgr-intl:eng is already registered by other component
Traceback (most recent call last):
  File "/usr/share/ibus-anthy/engine/main.py", line 26, in <module>
    import ibus
ImportError: No module named ibus

どうやらibusのPythonモジュール読み込み失敗しているらしい。とりあえずemergeしてみる。

# emerge -av ibus
 * IMPORTANT: 8 news items need reading for repository 'gentoo'.
 * Use eselect news to read news items.

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R   ~] app-i18n/ibus-1.4.99.20121006  USE="X dconf gconf gtk gtk3 introspection nls python -deprecated {-test} -vala" 0 kB

pythonは入ってるから大丈夫なはずなんだけどなぁ、と思ったけどふと「-deprecated」が怪しく感じてonにしてemergeした。
そしたら無事ibus-anthy自体は動くようになった。
ここからさらに。なぜかGnome 3.6での「Zenkaku_Hankaku」キーがショートカットとして使えない。
いろいろと探すと、VineSeedにそれらしいパッチがあった。

http://riksun.riken.go.jp/archives/Linux/vine/VineSeed/SRPMS.main/gnome-settings-daemon-3.6.3-1vl7.src.rpm

こんなかにある「gnome-settings-daemon-3.6.3-input-source-switch-zenkaku-hankaku.patch」を当てるverのebuildを作成してre-emergeしてみたが、ダメだった。

仕方ないので、xbindkeysを使用して無理やり解決。

まず切り替えスクリプトの用意。
(/usr/sunaga-lab/bin/switch-ibus-method)

#!/bin/bash

ENGINE=`ibus engine`
if [ s$ENGINE != "santhy" ]; then
	ENGINE="anthy"
else
	ENGINE="xkb:jp::jpn"
fi
ibus engine $ENGINE

次にxbindkeysの設定。

$ emerge xbindkeys
   ...
$ cat .xbindkeysrc
"/usr/sunaga-lab/bin/switch-ibus-method"
  Mod2 + Zenkaku_Hankaku

あとは.xprofileにxbindkeysを追加して終わり。

とりあえず使えるようになった。初回だけちょっともたつくけど。仕方ない。