この間、仮想マシンが壊れてしまい、
ハードディスクしか使えなくなったので、
別の仮想マシンをたてて、ハードディスクを移植することにした。
そこまでは、簡単だったのだけど、
ネットワークにつながらなくなったので、
メモ
$ sudo emacs /etc/network/interfaces
eth1 -> eth2に変更
$ sudo /etc/init.d/networking restart
eth1に設定してあるMACアドレスが違うため動かず、
eth1に設定してあるMACアドレスを変更すれば動くのだけど、
時間がないし、ローカルマシンだったので、eth2に変更するだけにした。
2011年12月26日月曜日
2011年6月8日水曜日
facebookをクライアントアプリのように使いたい
facebookのアクセストークンについて、
webアプリの作成とアクセストークンの取得方法が多少違う。
facebookではtwitterのようにクライアントアプリとして設定することできないみたい。
ただし、以下の方法でクライアントアプリのように動かすことが可能。
通常facebookアプリをブラウザアプリとして使う場合には、リダイレクトURLに
自分のサーバーのアプリの実行先を指定しますが、クライアントアプリでは必要ないので、
redirect_uriを
https://www.facebook.com/connect/login_success.html
と設定する。
※redirect_uriに何も設定しないとエラーになる。
手順
1.
https://www.facebook.com/dialog/oauth?client_id=【APP_ID】&redirect_uri=https://www.facebook.com/connect/login_success.html
にアクセスし、許可を出す。
※オプションでscope=offline_accessをつけておくとアクセストークンの有効期限がなくなる。
2.
許可を出すとリダイレクトされる。
https://www.facebook.com/connect/login_success.html?code=【コード】
【コード】を保存。
3.
先ほど取得した【コード】と【APP_ID】と【SECRET_KEY】を下記URLに記述し、アクセス。
https://graph.facebook.com/oauth/access_token?client_id=【APP_ID】&redirect_uri=https://www.facebook.com/connect/login_success.html&client_secret=【SECRET_KEY】&code=【コード】
4.
アクセストークンが表示される。
これでアクセストークンが取得できる。
webアプリの作成とアクセストークンの取得方法が多少違う。
facebookではtwitterのようにクライアントアプリとして設定することできないみたい。
ただし、以下の方法でクライアントアプリのように動かすことが可能。
通常facebookアプリをブラウザアプリとして使う場合には、リダイレクトURLに
自分のサーバーのアプリの実行先を指定しますが、クライアントアプリでは必要ないので、
redirect_uriを
https://www.facebook.com/connect/login_success.html
と設定する。
※redirect_uriに何も設定しないとエラーになる。
手順
1.
https://www.facebook.com/dialog/oauth?client_id=【APP_ID】&redirect_uri=https://www.facebook.com/connect/login_success.html
にアクセスし、許可を出す。
※オプションでscope=offline_accessをつけておくとアクセストークンの有効期限がなくなる。
2.
許可を出すとリダイレクトされる。
https://www.facebook.com/connect/login_success.html?code=【コード】
【コード】を保存。
3.
先ほど取得した【コード】と【APP_ID】と【SECRET_KEY】を下記URLに記述し、アクセス。
https://graph.facebook.com/oauth/access_token?client_id=【APP_ID】&redirect_uri=https://www.facebook.com/connect/login_success.html&client_secret=【SECRET_KEY】&code=【コード】
4.
アクセストークンが表示される。
これでアクセストークンが取得できる。
2011年6月3日金曜日
VirtualBoxサーバー化 もっと簡単に
VirtualBoxをサーバ化していたものの
たまにつながんなかったりと安定性が悪かったりしていたので
もっと簡単な方法でやります
まずvirtualboxの設定でネットワークを選択し
アダプタ1を「ホストオンリーアダプタ」に設定
名前はデフォルトでOK
次に、ゲストOSにログインして、固定IPの設定を行う。
/etc/network/interfaces
を以下のように記述。
eth0を変更して記述でOK。
次にホストOS(win7)のネットワーク接続で
インターネットにつながっている接続と
ホストオンリーアダプタで設定した名前の接続をブリッジ接続
これで完了でさぁ
しかし、つかっている。
thinkpad x201では、access connectionがデフォルトで入っていて、
ブリッジ接続を使うと、全部の接続を落とされる。
いろいろ調べたけど、access connectionを入れたまま
ブリッジ接続を使う方法はなかったので、
access connectionには死んでもらいました。
たまにつながんなかったりと安定性が悪かったりしていたので
もっと簡単な方法でやります
まずvirtualboxの設定でネットワークを選択し
アダプタ1を「ホストオンリーアダプタ」に設定
名前はデフォルトでOK
次に、ゲストOSにログインして、固定IPの設定を行う。
/etc/network/interfaces
を以下のように記述。
eth0を変更して記述でOK。
次にホストOS(win7)のネットワーク接続で
インターネットにつながっている接続と
ホストオンリーアダプタで設定した名前の接続をブリッジ接続
これで完了でさぁ
しかし、つかっている。
thinkpad x201では、access connectionがデフォルトで入っていて、
ブリッジ接続を使うと、全部の接続を落とされる。
いろいろ調べたけど、access connectionを入れたまま
ブリッジ接続を使う方法はなかったので、
access connectionには死んでもらいました。
2011年4月22日金曜日
Virtual Boxサーバー化 つづき
前回VirtualBoxをサーバー化してローカル環境を整えたので
ssh接続できる、外からtar.gzファイルとかもとってこれる、
scpもできる、ブラウザでアクセスもできるという環境ができた。
Web技術者としてはブラウザで見れる環境は必須なんだよ。
けど、毎回VirtualBoxを起動させて、画面上に表示させとくんだったら
sshでつながなくてもいいし、実際じゃまなわけで
調べてたら、バックグラウンドで実行できるらしいとわかり、
実際にやってみることに
.vbsファイルなんかになんかを書いて実行すればバックグラウンドで動くらしい。
さらに、スタートアップに入れとけば
毎回起動時にバックグランドで立ち上がってくれるらしい。
けど、
毎回は立ち上がらななくていいんだよ~
使わないときにリソース持っていかれても困る。
もっと手軽に好きな時に切ったりつけたりしたいんだ。
それで、もっとしらべてたら、
VBoxHeadlessTrayってのがあった。
ためしに使ってみると
好きな時に切ったりつけたりで切る。
かなり楽ちんだ。
ということでバックグランド実行環境が整ったわけです。
ssh接続できる、外からtar.gzファイルとかもとってこれる、
scpもできる、ブラウザでアクセスもできるという環境ができた。
Web技術者としてはブラウザで見れる環境は必須なんだよ。
けど、毎回VirtualBoxを起動させて、画面上に表示させとくんだったら
sshでつながなくてもいいし、実際じゃまなわけで
調べてたら、バックグラウンドで実行できるらしいとわかり、
実際にやってみることに
.vbsファイルなんかになんかを書いて実行すればバックグラウンドで動くらしい。
さらに、スタートアップに入れとけば
毎回起動時にバックグランドで立ち上がってくれるらしい。
けど、
毎回は立ち上がらななくていいんだよ~
使わないときにリソース持っていかれても困る。
もっと手軽に好きな時に切ったりつけたりしたいんだ。
それで、もっとしらべてたら、
VBoxHeadlessTrayってのがあった。
ためしに使ってみると
好きな時に切ったりつけたりで切る。
かなり楽ちんだ。
ということでバックグランド実行環境が整ったわけです。
ProxyPass ProxyPassReverse
以前使っていたサーバからDNSが切り替わる間
今後使うサーバへ転送する必要があったので
ProxyPass ProxyPassReverse
を設定して使うことにした。
通常のhttpには飛ぶものの
httpsは使えないので
/etc/apache2/mods-available/proxy.confに
SSLProxyEngine On
を追記
これでproxyでsslに対応
しかし、さらなる問題が
動画データがchunkedとかなんやらで
動画が再生されない。
どうやら、相対パスで動画位置を参照しているため
前のサーバにアクセスしてProxyで今のサーバーにつないでいる場合は
動画の参照も一度前のサーバに飛んで、Proxy経由でアクセスしている
というのが原因で、動画がストリーミング再生できないようだ。
そのため動画の参照部分だけは相対パスをやめて
ipアドレスを直に書くことにした。
DNS設定が反映されるまでのしばらくのあいだはこれで乗り切って
二日くらいしたらもどす。
今後使うサーバへ転送する必要があったので
ProxyPass ProxyPassReverse
を設定して使うことにした。
通常のhttpには飛ぶものの
httpsは使えないので
/etc/apache2/mods-available/proxy.confに
SSLProxyEngine On
を追記
これでproxyでsslに対応
しかし、さらなる問題が
動画データがchunkedとかなんやらで
動画が再生されない。
どうやら、相対パスで動画位置を参照しているため
前のサーバにアクセスしてProxyで今のサーバーにつないでいる場合は
動画の参照も一度前のサーバに飛んで、Proxy経由でアクセスしている
というのが原因で、動画がストリーミング再生できないようだ。
そのため動画の参照部分だけは相対パスをやめて
ipアドレスを直に書くことにした。
DNS設定が反映されるまでのしばらくのあいだはこれで乗り切って
二日くらいしたらもどす。
2011年4月21日木曜日
Virtual Boxサーバー化
Virtual Boxでローカルなサーバー環境を構築しようとしたのでメモメモ
windows7上にVirtualBox4.04をインストールし
とりあえず、普通にDebian6.0を導入
この辺はいつも通り
ただ、やりたいのは、
たとえば、windows側からputtyなんかでssh接続できて
debian側から外部にアクセスもできるようにしたいわけで
まず、VirtualBoxでゲストOSのネットワーク設定を変更する。
デフォルトでネットワークアダプタ1がNATになっているのでそれはそのまま放置
ネットワークアダプタ2を有効化して、ホストオンリーアダプタを割り当てる。
名前はデフォルトだと「VirtualBox Host-Only ethernet Adapter」
これはゲストOSのネットワークではなく、VirtualBox自体の環境設定のネットワークから変更、追加できる。
次にゲストOSである。Debianを立ち上げる。
/etc/network/interfaceに設定を記述。
virtualboxのホストオンリーネットワークのIPアドレスとネットワークマスクを確認して
auto eth1
iface eth1 inet static
address 192.168.56.101
gateway 192.168.56.110
netmask 255.255.255.0
上記を追記する。上記はデフォルトで設定してある場合の
「VirtualBox Host-Only ethernet Adapter」でのIPアドレス。
変更した場合はそのIPアドレスを記述。
次に
/etc/network/if-pre-up.d/iptable-up.sh
というファイルを作成し
以下を記述
#!/bin/sh
IPTABLES=/sbin/iptables
$IPTABLES -F
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 25 -m state --state NEW -j ACCEPT
#67はいらないみたい。
#$IPTABLES -A INPUT -p udp --dport 67 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT
上記まで
$sudo chmod 700 /etc/network/if-pre-up.d/iptable-up.sh
$sudo /etc/network/if-pre-up.d/iptable-up.sh
$sudo /etc/init.d/networking restart
でiptableの設定読み込みが完了。
あとvirtualbox側の設定でディスプレイのリモートディスプレイでポート番号67を使うようにしたら
wgetなんかで外部のファイルを取ってこれるようにはなった。
ただdebianから外部にsshとかはまだできてないので
もうちょっといじらないといけない。
結構いらない設定をしていたみたいで、消したところはいらないのかな。
とにかく、ホストOSからのssh接続と内部から外への通信ができるようになった!
windows7上にVirtualBox4.04をインストールし
とりあえず、普通にDebian6.0を導入
この辺はいつも通り
ただ、やりたいのは、
たとえば、windows側からputtyなんかでssh接続できて
debian側から外部にアクセスもできるようにしたいわけで
まず、VirtualBoxでゲストOSのネットワーク設定を変更する。
デフォルトでネットワークアダプタ1がNATになっているのでそれはそのまま放置
ネットワークアダプタ2を有効化して、ホストオンリーアダプタを割り当てる。
名前はデフォルトだと「VirtualBox Host-Only ethernet Adapter」
これはゲストOSのネットワークではなく、VirtualBox自体の環境設定のネットワークから変更、追加できる。
次にゲストOSである。Debianを立ち上げる。
/etc/network/interfaceに設定を記述。
virtualboxのホストオンリーネットワークのIPアドレスとネットワークマスクを確認して
auto eth1
iface eth1 inet static
address 192.168.56.101
gateway 192.168.56.110
netmask 255.255.255.0
上記を追記する。上記はデフォルトで設定してある場合の
「VirtualBox Host-Only ethernet Adapter」でのIPアドレス。
変更した場合はそのIPアドレスを記述。
次に
/etc/network/if-pre-up.d/iptable-up.sh
というファイルを作成し
以下を記述
#!/bin/sh
IPTABLES=/sbin/iptables
$IPTABLES -F
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 25 -m state --state NEW -j ACCEPT
#67はいらないみたい。
#$IPTABLES -A INPUT -p udp --dport 67 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT
上記まで
$sudo chmod 700 /etc/network/if-pre-up.d/iptable-up.sh
$sudo /etc/network/if-pre-up.d/iptable-up.sh
$sudo /etc/init.d/networking restart
でiptableの設定読み込みが完了。
wgetなんかで外部のファイルを取ってこれるようにはなった。
ただdebianから外部にsshとかはまだできてないので
もうちょっといじらないといけない。
結構いらない設定をしていたみたいで、消したところはいらないのかな。
とにかく、ホストOSからのssh接続と内部から外への通信ができるようになった!
2011年4月19日火曜日
Firefox4 保存して終了
Firefox4が出てたので更新してみた。
いままで、Firefoxを使ってるときは、
タグを保存して終了していたんだけど
「保存して終了」が出てこない…
仕方ないので設定を変更することに
1. firefoxを起動
2. urlの入力欄に「about:config」と入力しページを開きます。
3. 「動作保障対象外になります」という恐怖なメッセージが…
4. フィルタで「browser.showQuitWarning」を検索
5. browser.showQuitWarningの値を「False」から「True」へ変更
以上で完了です。
この状態でブラウザを閉じれば、「保存して終了」が表示されます。
いままで、Firefoxを使ってるときは、
タグを保存して終了していたんだけど
「保存して終了」が出てこない…
仕方ないので設定を変更することに
1. firefoxを起動
2. urlの入力欄に「about:config」と入力しページを開きます。
3. 「動作保障対象外になります」という恐怖なメッセージが…
4. フィルタで「browser.showQuitWarning」を検索
5. browser.showQuitWarningの値を「False」から「True」へ変更
以上で完了です。
この状態でブラウザを閉じれば、「保存して終了」が表示されます。
Djangoとpostgresql
Django_1.0.2で実装していたが
Django_1.2.1にバージョンアップさせようとして
困ったのでメモ
ちなみにこのとき使っていたのは
Django_1.2.1 Pinax-0.5.1 postgresql8.4 psycopg2
データベース中のユーザ情報を変更しようとしたがエラーになる。
たとえばユーザのタイムゾーンを'Asia/Tokyo'に変更しようとする
>>>from account.models import Account
>>>user_data = Account.objects.all()[0]
>>>user_data
>>>user_data.timezone = u'Asia/Tokyo'
>>>user_data.save()
DatabaseError: can't adapt 'Asia/Tokyo'
となる。
実は、user_data.timezoneには文字列を入力しているのだが
実際にuser_data.save()をおこなったときに発行されるSQLに代入する時点では
文字列のu'Asia/Tokyo'ではなく、timezoneオブジェクトになっているために
起きているエラーだった。
Django_1.2.1にバージョンアップさせようとして
困ったのでメモ
ちなみにこのとき使っていたのは
Django_1.2.1 Pinax-0.5.1 postgresql8.4 psycopg2
データベース中のユーザ情報を変更しようとしたがエラーになる。
たとえばユーザのタイムゾーンを'Asia/Tokyo'に変更しようとする
>>>from account.models import Account
>>>user_data = Account.objects.all()[0]
>>>user_data
>>>user_data.timezone = u'Asia/Tokyo'
>>>user_data.save()
DatabaseError: can't adapt 'Asia/Tokyo'
となる。
実は、user_data.timezoneには文字列を入力しているのだが
実際にuser_data.save()をおこなったときに発行されるSQLに代入する時点では
文字列のu'Asia/Tokyo'ではなく、timezoneオブジェクトになっているために
起きているエラーだった。
2011年4月16日土曜日
2011年4月4日月曜日
Disqus導入
Disqusを導入しようとして微妙にはまったのでメモ
通常どおりDisqusを導入するため
InstallからUniversal Codeをコピペしたところ
「we were unable to load disqus. for more information please see our documentation on identifiier and urls」
という文が表示されてコメント投稿フォームが表示されなかった
そのため、
var disqus_developer = 1
の一行を加える必要があった。
以上で普通に動くはず。
通常どおりDisqusを導入するため
InstallからUniversal Codeをコピペしたところ
「we were unable to load disqus. for more information please see our documentation on identifiier and urls」
という文が表示されてコメント投稿フォームが表示されなかった
そのため、
var disqus_developer = 1
の一行を加える必要があった。
以上で普通に動くはず。
2011年2月5日土曜日
Think Pad x201 SSD換装
x201をSSDにしたのでメモ
結構簡単だった
換装前に
まず、リカバリディスクを作成しておく
x201にはDVDドライバがついてないのでUSBメモリに作成
作成手順は以下を参考にした
http://www-06.ibm.com/jp/domino04/pc/support/Sylphd03.nsf/jtechinfo/MIGR-74246
USBメモリにリカバリデータを作成するときに大体5GBくらい必要
それと、USBメモリの元のデータは消えてしまうので、バックアップしとく必要がある
リカバリデータができたら
電源やらバッテリーやらをはずして
ドライバーをでねじはずしてHDとSSDを交換
さっき作ったリカバリデータの入ったUSBメモリをつないで
電源ON!
あとは特に何もしなくてもリカバリが開始されるので
流れにそっていけばリカバリが終了し
HDからSSDへの換装が完了です!
今回困ったことといえば家に5GBのデータが入るUSBメモリがなかったこと
わざわざ買いにいったわ
結構簡単だった
換装前に
まず、リカバリディスクを作成しておく
x201にはDVDドライバがついてないのでUSBメモリに作成
作成手順は以下を参考にした
http://www-06.ibm.com/jp/domino04/pc/support/Sylphd03.nsf/jtechinfo/MIGR-74246
USBメモリにリカバリデータを作成するときに大体5GBくらい必要
それと、USBメモリの元のデータは消えてしまうので、バックアップしとく必要がある
リカバリデータができたら
電源やらバッテリーやらをはずして
ドライバーをでねじはずしてHDとSSDを交換
さっき作ったリカバリデータの入ったUSBメモリをつないで
電源ON!
あとは特に何もしなくてもリカバリが開始されるので
流れにそっていけばリカバリが終了し
HDからSSDへの換装が完了です!
今回困ったことといえば家に5GBのデータが入るUSBメモリがなかったこと
わざわざ買いにいったわ
2011年1月5日水曜日
googleツールバーバグ
プログラムではないけれども
googleツールバーのバグでハマったのでメモ
確認した環境は、windows7,firefox3.6.13,
Google Toolbar for Firefox 7.1.20101113Wb1
htmlを書く際にtitle属性をつけると
title属性がツールチップとして表示される。
これは普通に便利な機能なのだけれど
Googleツールバーをインストールしていると
title属性のないところで空のツールチップが表示されてしまう
またこれだけではなく、一度title属性をツールチップで表示させた後
title属性の付いていないタグにマウスオーバーさせた場合。
空のツールチップではなく
先ほど表示したtitle属性がツールチップとして表示されてしまう。
これは別のページに移動した場合でも先ほどのツールチップが表示される。
webページを作成していて自分のプログラムミスでこんなことになってるかと焦った…
Googleツールバーを削除すれば改善されるが
インストールしなおしてもだめだった。
googleツールバーのバグでハマったのでメモ
確認した環境は、windows7,firefox3.6.13,
Google Toolbar for Firefox 7.1.20101113Wb1
htmlを書く際にtitle属性をつけると
title属性がツールチップとして表示される。
これは普通に便利な機能なのだけれど
Googleツールバーをインストールしていると
title属性のないところで空のツールチップが表示されてしまう
またこれだけではなく、一度title属性をツールチップで表示させた後
title属性の付いていないタグにマウスオーバーさせた場合。
空のツールチップではなく
先ほど表示したtitle属性がツールチップとして表示されてしまう。
これは別のページに移動した場合でも先ほどのツールチップが表示される。
webページを作成していて自分のプログラムミスでこんなことになってるかと焦った…
Googleツールバーを削除すれば改善されるが
インストールしなおしてもだめだった。
登録:
投稿 (Atom)

