MewからIMAPでGmailに過去メールをアップロードする
http://www.naney.org/diki/d/2008-01-09-Gmail.html
ローカルにあるメールは li コマンド(あるフォルダのメッセージを IMAP のフォルダへコピー) や mli コマンド (* の付いた複数のメッセージを IMAP フォルダへコピー) できる。
DokuwikiでjQueryが標準で使えるようになった
以前からwikiサイトは
ja:dokuwiki [DokuWiki]
をつかっていて
- DB不要
- URLをシンプルにできる(当時は短縮URLサービスもなかった)
なところがよくてちょっとしたマニュアルにつかっていたが
AnguaバージョンよりjQueryが標準で使えるようになったみたいで
devel:jqueryfaq [DokuWiki]
さっそく使ってみた
一番の注意点は$()ではなくjQuery()とすること
詳細はドキュメントを読むとして
JavaScriptは
ja:devel:javascript [DokuWiki]
にあるように
lib/tpl/default/script.js
に書いた
minifyされるのでセミコロンを忘れずに
ロードバランサ配下などでShibbolethを動かすときApache-2.0
ロードバランサというよりSSLアクセラレータの下で
Shibbolethを動かすとき
https://www.gakunin.jp/ml-archives/upki-fed/msg00390.html
にあるように
ServerName https://www.example.net:443 UseCanonicalName On
にしますが
Apache-2.0だとServerNameにこの書き方がエラーになります
この場合
ServerName www.example.net:443 ShibURLScheme https UseCanonicalName On
にしてあげるとよいです
Amon2でJSONPを使うとき
マニュアルどおりなんですが
http://amon.64p.org/output.html#json
具体的には
app.psgi
enable 'Plack::Middleware::JSONP';
Web.pm
__PACKAGE__->load_plugins(
...,
'Web::JSON',
);
Web/Dispatcher.pm
any '/' => sub { my ($c) = @_; my $data = Hogehoge->get_data($c); if (defined $c->req->param('type') && $c->req->param('type') eq 'json'){ return $c->render_json($data); } else { return $c->render('index.tt' => {data => $data}); } };
js(jquery)
$.ajax({ type: 'GET', url: 'http://www.example.net/?type=json&callback=?', dataType: 'jsonp', success: ... });
あと
render_jsonに渡すのはUTF8フラグをつけてから
perlのJSONの注意点
http://www.donzoko.net/cgi-bin/tdiary/20100406.html#p01
http://search.cpan.org/dist/JSON/lib/JSON.pm#HOW_DO_I_DECODE_A_DATA_FROM_OUTER_AND_ENCODE_TO_OUTER
Net::Google::Calendarでハマったこと
perlでNet::Google::Calendarを使うとき
401 Authorization required
と言われるのは
Cypt::SSLeayがないから
http://perl.g.hatena.ne.jp/ishiduca/20100504/1272948725
んで
Crypt::SSLeayのテスト01-connect.tがこけるのは
# Failed test 'Net::SSL->new' # at t/01-connect.t line
LANGがCじゃないから
http://smokycat.info/perl/240
それでもまだ401が返るので
http://www.cd.info.hiroshima-cu.ac.jp/~ichihara/wordpress/2009/07/29/netgooglecalendar/
にあるように
print $@;
すると
LWP will support https URLs if the LWP::Protocol::https module is installed.
っていわれるのでそれもインストール
あとcronで動かすときはPATHやhttp_proxyをわすれるな
PATH=/home/.../perl5/perlbrew/perls/perl-5.16.0/bin:/home/.../script:/usr/local/bin:/usr/bin:/bin http_proxy=http://proxy.example.net:8080 LANG=C 0 9 * * * get_gcal.pl
疲れるorz
Fedora17でsshdで新規ポートを開ける際のSELinuxの設定
Fedora17にアップデートして
sshdで新規ポートを追加であげたとき
---sshd.config--- Port 22 Port 10022 -----------------
単純に職場のDMZから職場のプライベートなネットワークへは
ハイポートしか許可されてないからなのだけど
こんなことすると本末転倒なのはとりあえず横において
% sudo systemctl restart sshd.service
とするとSELinuxが
type=AVC msg=audit(1339132675.450:303): avc: denied { name_bind } for pid=20291 comm="sshd" src=10022 scontext=system_u:system_r:sshd_t:s0-s0:c0.c1023 tcontext=system_u:object_r:unreserved_port_t:s0 tclass=tcp_socket
と怒る
ところがSELinux Alert Browserとかが自動で立ち上がり
you need to modify the port type. # semanage port -a -t PORT_TYPE -p tcp 10022 ここで、PORT_TYPE は 以下の1つとなります: xserver_port_t,ssh_port_t
なーんていうから
% sudo semanage port -a -t ssh_port_t -p tcp 10022
とすると無事新しいポートでも起動できた
便利だねー
sshクライアント名の補完 for tcsh
SSH力をつけよう
に感化されて.ssh/configの設定をみなおした
Host host1 HostName 192.168.1.1 Host fumidai HostName 192.168.1.2 User user1 LocalForward 2200 home.example.net:10022 Host home HostName 127.0.0.1 Port 2200 ForwardX11 yes Host host2 HostName 192.168.10.1 ForwardX11 yes Host host3 HostName 192.168.20.1 ProxyCommand ssh host2 nc -w 10 %h %p # host2のsshのバージョンは3.9なのでncを使った* :
*参考 ncある限りぼくはどこまででもいけるッ! - (ひ)メモ
なんて具合に山のようにホスト名を記述したが
シェルで補完できないのが困る
現在tcshを使っているが
Fedoraだと/usr/share/doc/tcsh-***/complete.tcsh
にいろんな補完情報が載っている
# これだと.ssh/known_hostsから補完できる
その情報を元に.cshrcに
if ( -r "$HOME/.ssh/config" ) then set noglob set ssh_hosts=`cat "$HOME/.ssh/config" | grep '^Host ' | cut -f 2 -d \ ` >& /dev/null complete ssh p/1/\$ssh_hosts/ c/-/"(l n)"/ n/-l/u/ N/-l/c/ n/-/c/ p/2/c/ p/*/f/ unset noglob endif
を書いて補完できるようにした