グリーン関数の導出
物理やってるとグリーン関数なるものがよく登場しますね。
ポアソン方程式
のような方程式を解くときに使うあれです。
ただ解けはするんだけどなんか気持ち悪いなーとか思っていて、パルスって説明もちょっと納得いかず色々とこねくり回してたらそれっぽい感じの説明思いついたので書いておきます。(正しいかは保証しません)
方程式
でについて解くことを考えます。ここでは微分を含むような線形作用素だとします。
行列とベクトルみたいな感じで両辺からの逆作用素をかけてあげると
となり、形式的にはが求まりました。が、逆作用素の実体が不明なのでこれを求めます。
微分の逆演算なので積分になりそうです。とりあえず以下のように仮定してみましょう。
積分になるだろうという予測、そしてたんなる積分ではなくなにか関数Gも含むだろうという予測です。
あとはGをもとめればいいだけ(存在するのかというのもホントは証明しないといけないですけど)ということですが、
積分が含まれていて余計にややこしくなったように見えます。
今Gを積分から取り出すのにデルタ関数を用います。
とおいて代入してみましょう。
めでたく積分の中からGを取り出せましたね。
あとはを両辺にかけて
という方程式をとけば良いだけです。ポアソン方程式の場合はフーリエ変換して逆変換してあげれば出ますね。
この方程式に出てきたGのことをグリーン関数と呼びます。
Apache2.4ではまった話(cgiモジュールとhtpasswd)[メモ]
apache2.4つかってて
1.デフォルトでcgid_moduleがオフになっている。
2.Apache2.4.4のhtpasswdが正常に動かない(バグが有る)
というのにはまった。ということでメモ。
1.デフォルトでcgiモジュールがオフになっている。
cgiがうごかなくて
AddHander cgi-script
とかしても動かず悩んでいたところしらべたら
LoadModule cgid_module modules/mod_cgid.so
がどうやらコメントアウトされているらしい。ということでコメントアウトを解除したら動いた。2.2系だと標準でonになっていたのでまったくきづかなかった。セキュリティ上安全になったということなんだろうけどこういう変更辛い...
2.Apache2.4.4のhtpasswdが正常に動かない(バグが有る)
Apache2.4.4のhtpasswdにはバグがあってうまくパスワードファイルを生成できない。まあ、BASIC認証なんて危険だから使うなよという話はおいておいて(ローカルネットワークだと手軽にできるし)
修正方法としてはソース・コードを展開したディレクトリのsupport/passwd_common.cを書き換えてビルドしなおしてあげればよい。168行目辺りに
pw = pwin;
という部分があるのでこの前に
strcpy(pwin,ctx->out); pw = pwin;
というふうに追記してやれば良い。
もとのコードではその前の get_password(ctx)という部分でパスワードをctxのoutメンバに書き込んでいるらしいのだがなぜかそれを使わずにpwinをpwに代入している。おそらくこれはpwinにoutの内容を書き込んでからこうする予定だったのだろうなということでstrcpyでpwinに書き込んでやる。そうすればちゃんとうごくというわけ。きっともともとこういうことを想定していたんでしょう。
参考:
http://d.hatena.ne.jp/rougeref/touch/20120521#1337587242
http://apache24.jugem.jp/?eid=7
Apache2.4.4をソースから導入するときのメモ
Apache2.4.4をソースから入れる機会があって色々と躓いたのでメモ。
作業の大まかな流れとしては
- Apacheのソースコードのダウンロード
- APRのダウンロード・インストール
- pcreのダウンロード・インストール
- Apacheのソースコードのコンパイル
- httpd.confの編集
- ポートの開放
- 表示確認
という感じでおこなった。
まずは以下の場所からソースコードをダウンロードし展開する。
wget http://ftp.riken.jp/net/apache//httpd/httpd-2.4.4.tar.gz tar xfvz httpd-2.4.4.tar.gz
次にMAKEFILEを生成するために
./configure
としたところ
apache2 apr not found
というエラーが出た。
そこで
cd httpd-2.4.4/srclib wget http://ftp.riken.jp/net/apache//apr/apr-util-1.5.2.tar.gz wget http://ftp.riken.jp/net/apache//apr/apr-1.4.6.tar.gz
としてダウンロード。
tar xfvz apr-1.4.6.tar.gz tar xfvz apr-util-1.5.2.tar.gz mv apr-1.4.6 apr mv apr-util-1.5.2 apr-util
としてそれを展開してそれぞれaprとapr-utilとリネーム。
その後ふたたびapacheのディレクトリに戻り
./configure
これでうまくいくかとおもいきや今度は
pcre-config for libpcre not found
というエラーが出るので
wget "http://sourceforge.jp/frs/g_redir.php?m=jaist&f=%2Fpcre%2Fpcre%2F8.32%2Fpcre-8.32.tar.gz" tar xvzf pcre-8.32.tar.gz cd pcre-8.32 ./configure make make install
としてPCREを導入した。
ここで気をつけなくてはいけないのは""で囲むこと。そうじゃないとうまくDLされない...
その後apacheのディレクトリにはいり再び
./configure
とすると
うまく通ったので
make
make install
でApacheをインストールした。
次にapacheを起動するため
/usr/local/apache2/bin/apachectl start
すると
AH00558: httpd.exe: Could not reliably determine the server's fully qualified domain name, using fe80::1155:696f:bc0c:6ebd. Set the 'ServerName' directive globally to suppress this message
というエラーがでたので
vi /usr/local/apache2/conf/httpd.conf
で
ServerName <サーバのIPAdress>:80
という行を追加。
これでエラーはでなくなったが、リモートのブラウザからはアクセスできない。
そこできちんと動いているか確認するためサーバ側で
wget http://<サーバのIPAdress>
とするとindex.htmlが正常にダウンロードされる。
ここでしばらくなやんが、
色々と調べた結果80番のポートが開放されていないようなので
/etc/sysconfig/iptables
を見てみるとたしかに80番のポートが開放されていない。(逆に最初から開放されていても怖いが、いままでクライアントとして使ってなかったので全然意識してなかった)
そこで
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
という行を追記し、
/etc/init.d/iptables restart /usr/local/apache2/bin/apachectl restart
によって再起動をかけてクライアントのブラウザからアクセスすると「It Works!」という表示が見ることができた。
Oauth認証で非常につまらないところで躓いた話(Oauthとタイムスタンプ)
昨日からふと思いたちPythonのtweepyを使ってtwitterで色々と遊んでる。そのときStreamingAPI使うと常に401が帰ってきてしまった。どうやら認証で弾かれているらしいということなのだが...tweepyのソース読んだり、色々と調べてみたが解決しない。いっそのこと自分で実装するか?とか考え始めた時ふとPCの時計に目をやると時刻がずれている...もしや?と思い直して試してみるとすんなり動いてしまった。こんなくだらないことだったとは...とはいえ私みたいに躓いて悩む人がいるかもしれないので一応メモとして残しておく。
ちなみにしらべてみるとOauthで送られる情報には時刻(タイムスタンプ)が含まれていて一定以上のずれがあるとはじかれる模様。ライブラリ使うとしても完全にブラックボックスで使うのは良くないですね。
TideSDKをdebianに導入してみた
PythonでGUIを手軽に扱えるものないかな?と探していてTideSDK(前Titanium Desktop)を見つけました。wxPythonとかPyQtとかも考えたんですが、なんかなーってのがあり。TideSDKはhtml5+css+jsとあとPython,PHP,Rubyあたりを組み合わせてマルチプラットフォームなDesktopアプリケーションが作れるみたいです。これならわりと書きやすそうだなと思い導入してみることにしました。
まずはここ(www.tidesdk.org/)からSDKと開発ツールをDLします。SDKのほうはユーザのhomeディレクトリに.tidesdkという隠しフォルダを作りそこにSDKを展開して出てきたフォルダを突っ込みます。
次に開発ツール。こちらも展開して出てきたTideSDK Developerを実行すればいいだけ...のはずだったのですが、debian(wheezy)だといくつかの依存関係を満たせていないようで途中でエラーが出てしましました。
まず、libcurl.so.4がないと怒られます。
そこで
sudo aptitude install libcurl3-dev
をいれると進む。
が、こんどはlibjpeg62がないと怒られました。
sudo aptitude install libjpeg62-dev
としていれてあげるとうまく動きました。
死んだPCからThunderbirdのメールデータを救出する
3月のはじめあたりからPCがしんでまして。大体のデータはバックアップとっていたのでそんなに問題なく生活できているのですが、今日大事なメールが死んだPCないにあることが判明...しかもサーバから消す設定にしてしまっていたのでそこにしかない状態という...
弟のPCをかりThunderbirdを入れて設定してみるとどうやらデフォルトでは「Documents and Settings\<ユーザ>\Application Data\Thunderbird\Profiles\」にある英数字.defaltというフォルダがメールフォルダにあたるよう。そこでとりあえず死んだPCのHDDつなぎフォルダごとコピー。なんか名前が違いますが、中身は共通してそうなので中身をコピーしたらうまくメールがみれました。めでたし。めでたし。
サイトで数式を書くのにMathJaxが便利
前から書く書く言っていた物理数学のサイトを書き始めた。
その時に当然数式を書くわけだが、いいツールがないか探していた
ときに見つけたのがMathJaX。特にサーバにcgiおいてということもなくjsファイルを読み込むだけで使える。
また、完全にTeXの書き方でhtml内に数式を入れられるので便利。
しかもわりと綺麗に出力される。
サイトの数式どうしようか困っている方は導入してみては?
http://www.mathjax.org/