投稿

5月, 2011の投稿を表示しています

Domain名でAccessしたときにApacheの応答が異様に遅い

イメージ
社内のServerをReverse Proxyを使って外部に公開する設定をしたときに、Domain名でAccessすると異様に遅い。IP Addressの場合は全く問題なし。 http://hoge.domain.com/ と http://192.168.0.xxx/ の違い Apacheの設定やServer側の名前解決など、いろいろ疑ってみたけど、よく分からない。Domainを指定すると、Apacheの応答が遅いので、Serverで何か処理しているのかな?と思いつつ(↓FirebugのTimeline) 気付いた! FirefoxにProxyの設定をしてあって、Domainを指定すると日本のServer経由で参照してた・・・。orz これに気付くまでに3時間。   < Related Posts > ApacheにReverse Proxyを設定して社内の別Serverを外部に公開

ApacheにReverse Proxyを設定して社内の別Serverを外部に公開

前に調べた 特定のDomainは社内の別Serverに転送するやり方。外部からは転送されていることは分からない。これをReverse Proxyというらしい。 やりたい事は社内に複数のVirtual Machineが違う環境で存在していた場合に http://mydomain.com/app1 -> Virtual Machine1に転送 http://mydomain.com/app2 -> Virtual Machine2に転送 という感じに振り分けたい。 今回は既に80 Portを受け取るServerがいるので、そのApacheのConfig Fileに追記した。 <VirtualHost *:80>   ServerName stage.my.domain   ProxyRequests Off   ProxyPass /app1 http://192.168.0.81/app1   ProxyPassReverse /app1 http://192.168.0.81/app1   ProxyPass /app2 http://192.168.0.82/app2   ProxyPassReverse /app2 http://192.168.0.82/app2 </VirtualHost> 特定の人にしか見せたくない場合は、Basic認証をかける。 前の記事 を参考に。 mod_proxy - Apache HTTP サーバ   次回引越しのときには外部からのAccessを一元管理するServerを一台用意して、そこに Delegate か Pound をInstallして振り分ける予定。 Poundで作るロードバランサとSSLラッパ(1/4) - @IT   < Related Posts > 1つのGlobal IPでDomainごとに別のWeb ServerにRoutingしたい(調査編)

Google Tech Talksの講演動画には役に立つ情報がたくさん

イメージ
HTML5やnode.jsに関して調べているときに YouTubeにあるGoogle Tech Talksの動画 に素晴らしい情報がたくさんあることに気付いた。. 英語だけど。 あとでじっくり見るためにMemo. Building a JavaScript-Based Game Engine for the Web   Node.js: JavaScript on the Server   Speed Up Your JavaScript   Google検索しても見つかりづらいので、YouTubeに実装してほしい機能は 音声からTextの抜き出し 動画からTextの抜き出し 近い将来実装されてそう。

[VMware Fusion]LinuxにVMware ToolsをInstallして時刻同期

前 はVMware ToolsをInstallしなくてもcron + ntpupdateで時刻同期すればいいと書いていたけど、SingaporeにHostごと持ってきたときに全てのGuest MachineのNTPの設定を変更しないといけないことに気づいたので、VMware Toolsで時刻同期することにした。 Host環境: Mac OS X Server 10.6.7 + VMware Fusion 3.1.2 Virtual Machine: CentOS5.5 まずはVirtual Machine -> Install VMware ToolsからImageをMount. then Virtal MachineのConsoleで # mkdir /mnt/cdrom # mount /dev/cdrom /mnt/cdrom/ # cp /mnt/cdrom/VMwareTools-8.4.5-332101.tar.gz ./ # tar xzvf VMwareTools-8.4.5-332101.tar.gz # cd vmware-tools-distrib/ # ./vmware-install.pl 全てDefaultで答えていけばOK. 自動起動も勝手に登録してくれる。確認 # chkconfig --list # /etc/rc.d/init.d/vmware-tools status # date   < Related Posts > 【VMware Server】LinuxゲストマシンにVMware Toolsをインストール VMwareでLinuxの時間がずれるのをなんとかする(時刻同期)

MongoDBをyum経由でCentOSにInstall

node.jsの開発をするときにMongoDBを使おうとInstall、設定したときのMemo 環境はCentOS5.5 64bit Official Siteにyum経由でInstallするやり方 があるので、そちらを参考に。 # yum install mongo-10gen-server 今のVersionは1.8.1。起動Scriptが/etc/rc.d/init.d/mongodに出来るので、それを読めば何となく分かる。 # less /etc/rc.d/init.d/mongod /etc/mongod.conf /etc/sysconfig/mongod から設定を読み込んで起動しているみたい。各項目は Official Siteのこの辺 を読めば分かりそう。 とりあえず起動してStartUpに登録しておく。 # /etc/rc.d/init.d/mongod start # chkconfig --add mongod # chkconfig mongod on   < Related Posts > MongoDBの概要を調べる

MongoDBの概要を調べる

node.jsを使った開発をする際にDatabaseをどれにしようか迷ったときMemo. node.js関連でよく見かけるMongoDB( official site )。NoSQL(Not only SQL)のDocument-oriented databaseに属するみたい。詳しくは下記Siteを参考に。 はじめに - Docs-Japanese - 10gen Confluence 第3回 ドキュメント指向データベースと列指向データベース | Think IT ドキュメント指向データベース「MongoDB」|サイバーエージェント 公式エンジニアブログ 特徴としては、 Dataの持ち方自体がJSONを元にしたBSONという形式 JavaScriptを使用してDBにAccessできるShellが用意されている(JavaScriptの関数をそのまま渡すことが可能) このためnode.jsとの相性が非常にいい 複数Serverを用いた負荷分散、Replicationが簡単 MySQLと比べて(ちょっとだけ?)高速 Transactionは使えない JavaScriptを知っていれば、Database, Server, Clientと一環したProgrammingが出来るので面白そう。 最後にこんな記事も見つけた。 NoSQLをRDBの代わりに使うと、どういう恐ろしいことが起こるか。PARTAKEの作者が語る - Publickey

初空手稽古 in Singapore

昨日はSingaporeに来て、初めての空手稽古。 「稽古したいなぁー」とつぶやいていたら、「○○さんはここで稽古しているよ」と友人が教えてくれたので、さっそく連絡して行ってきた。 The Japan Karate Association - Singapore Branch Japan Karate Association - Singapore Branch | Facebook facebookのfan page. さっき検索したら、下記Blogがあったので日本の方はこちらに連絡した方がいいかも。 シンガポール ☆ 空手 久しぶりの稽古だったので、やっぱり体が思うように動かない。 どんどん下手になっているし・・・。 でもやっぱり空手は気持ちイイね!

[node.js]Express + ejs + Socket.ioを使ったSample Site

前まではnode.jsとSocket.ioをInstallしてSampleを動かしただけ。今度本格的なApplicationを開発しようと Express というnode.js用開発FrameworkをInstallしてみた。 参考にしたのは下記Site. Creating a basic site with node.js and Express | Shape Shed expressでejsつかってログインしてみよう - すにぺっと node.js + express + mongoDB + WebSocket などのリンクまとめ - 家族サービスの合間をぬって書く技術系のブログ npmを使ってサクっとInstallできる。 # mkdir /opt/express_test # cd /opt/express_test expressが使うmoduleを先にInstallしておく # npm install connect qs mime # npm install express socket.io ejs # ./node_modules/express/bin/express -t ejs app.jsはdefaultで3000 portが設定されているので、任意に変更しておく。 # node app.js これで、http://192.168.0.xxx:8080/にAccessすると表示されるはず。   各Module一覧 underscore.js ( github )( Document ) 便利関数の詰め合わせ。 connect ( github )( Document ) Pluginのように3rd party middlewareを動作させるためのFramework qs Query StringをParseしてjson形式で返す mime Multipurpose Int...

node.js, socket.ioをInstallしてWebSocketを試す(Sample実行編)

イメージ
前回 node.jsとsocket.ioのInstallまで成功したので今回は実際にSampleを動かしてみる。 Sample sourceは~/node_modules/socket.io/example/にある。この中にあるserver.jsは8080 portを使うように書かれているので、Firewallの設定を忘れずに行っておく。 起動してみる。 # cd ~/node_modules/socket.io/example/ # node server.js これでClientから http://192.168.0.xxx:8080/ で接続すると次のような画面が起動するはず。 複数のBrowserでAccessするとchatっぽくなっているのを確認できる。 そのうちWordpressと連携したApplicationを開発したいと模索中。 node.jsでhttp sessionを共有するsocket.ioのテストを書く   < Related Posts > node.js, socket.ioをInstallしてWebSocketを試す(Install編) WebSocket, node.js, Socket.IOって何?

node.js, socket.ioをInstallしてWebSocketを試す(Install編)

前回 でnode.jsって何?というのが大体分かったので、今度は実際にServerにInstallしてみた。 環境: CentOS5.5 node.jsのバージョン管理ソフトnvm (Node Version Manber)経由でインストールすることにした。 基本は Official Site のReadmeを見ながら。 GitがInstallされていなければ、まずはDAG(RPMForge)を追加してyum経由でInstallできるようにする。詳しくは 前の記事 を参考に。 # rpm -Uhv http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS//rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm # yum update # yum install git ここからnvmのInstall # git clone git://github.com/creationix/nvm.git ~/.nvm # . ~/.nvm/nvm.sh これで"nvm"が使えるようになっているはず。Loginしたときに常に使いたいので # vi ~/.bashrc . ~/.nvm/nvm.sh を追記して保存。 node.jsの最新版をInstall。最新版は Official Site でCheck。 # yum install gcc-c++ openssl-devel # nvm install v0.4.7 Now using node v0.4.7 /usr/bin/which: no npm in (/root/.nvm/v0.4.7/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin) Installing npm...   % Total    % Received % Xferd  Average Speed   Time    Time   ...

WebSocket, node.js, Socket.IOって何?

HTML5とWebSocketを調査していて辿り着いた「node.js」。何これ?と思ってGoogle先生に聞きまくってたときのMemo. WebSocket ( wikipedia ) HTTPと同じような通信規格(Protocol)の一つ。非常に高速。ServerからPush配信できる。前はHTML5の仕様の一部だったらしい。 node.js ( 公式Site ) ( Wikipedia ) Server Side JavaScript Engine Framework. 高速。全てのI/Oが非同期に処理され、ブロックされることがない。このためWebSocketとの相性がいい。 このスライド が分かりやすい。 socket.io ( 公式Site ) node.js上でWebSocketを使うためのLibrary. Server側とClient側両方のJavaScript Libraryを提供してくれる。WebSocketに対応していない端末でも通信できるようになっているらしい。 npm ( 公式Site ) node.js用のPackage Manager. socket.ioを使いたい場合はnpm経由の方が管理が楽。 nvm ( Readme ) Node Version Manager. node.js自体のVersion管理をしてくれる。これを使ってnodeをInstallしておくと後が楽。 同様の機能で nave というのもあるらしい。 大枠は理解できたので、次は実際にnode.jsのinstallからsampleの起動まで行う予定。   < 2011/0519 Modified > 面白い記事があったのでLink node.jsは普及しそうに無い: ニュースの社会科学的な裏側 Node.jsについての...

HTML5とWebSocketについて調査、勉強(関連Link集)

役に立ったSiteのMemo. < HTML5 > HTMLの大幅な改訂版。HTML4までは「文書」の作成が主な目的。HTML5では「Application」も作成できる機能が加わる。詳しくは wikipedia . Google Developers | HTML5ROCKS was a google project HTML5.JP HTML5ベースのWordPressのテーマファイルのまとめ HTML5+Canvasタグによるアニメーションユーティリティ「gury」 Chrome Experiments < WebSocket > XMLHttpRequest(XHR)の欠点を解決する手段として開発。ServerからClientにPushできる。iPhone, iPadのSafariでも動作可能。詳しくは wikipedia . 最近のWebSocket事情についてまとめとく @IT 第1回 node.jsの衝撃とWebSocketが拓く未来 HTML5(canvas) + CSS3 + WebSocketでiPhone, iPadでも動作するApplicationを作ってみたい。 < 2017/10/12 Modified > 指摘を受けてリンク修正

Ajax通信しても固定URLを持たせてGoogle Analyticsに記録したい

Ajaxを利用してPage全体をReloadしない仕組みにしたけど、下記の要望に対応したMemo。環境はWordpress 3.1.2 詳細記事にBookmarkしたい。 Google Analyticsでアクセス解析したい。   詳細記事にBookmark これを実現するために非同期で詳細情報を取得して描画した後に、URLを変更しないといけない。location.hashを使うのが一般的みたい。検索してみると jQuery History や HashListener というLibraryを使えば簡単に設定できそう。 ただ#以降のURLはServer(PHP)側で取得できないので、実際そのURLを指定したら、onLoadのEventを使って(Client側で)記事を検索、表示させてあげないといけない。 Server側で処理をしたい場合はQuery Stringに埋め込む。これを受け取ったあとの処理は前に導入した qTranslate というWordpress Pluginを参考にするとできそう。   Google Analyticsでアクセス解析したい location.hashにsetする時に _gaq.push(['_trackPageview', '/home/landingPage']); を発行すればいいみたい。詳細は Google Code で。   < Related Posts > Wordpressで多言語対応。「qTranslate」pluginを導入

1つのGlobal IPでDomainごとに別のWeb ServerにRoutingしたい(調査編)

1つのGlobal IP Addressしかないのだけれど、社内LANにある複数のServerを外部に公開したくて調査したMemo。 そういった機能はReverse Proxy(リバース プロキシ)というらしい。 @IT【リバース・プロキシ/リバース・プロクシ】 実現するにはApacheだけでも出来るらしい。他にも Wikipedia にいくつか紹介されている。 そのうち社内に導入する予定。   < Related Posts > 一つのIPアドレスで複数のWebサイトを運営するapacheの設定

Marina Bay SandsでCasino(カジノ)をやってみた

Casino好きの知人が日本から来ているので、 Marina Bay Sands のCasinoを体験してみた。 実はその知人は先週からSingaporeに来ていて、連れて行ってもらうのは今回が二回目。前回は Slot Machine をやって、S$300(2万円)負けた。このうちS$100は自腹で、残り200はS$100を取られて呆然としていたら知人(←とてもお金持ち)が提供してくれた。 今回挑戦したのは Roulette(ルーレット) 。 テーブルを囲むと思いきや、一人一台使うTouch PanelのDisplayが置いてあって、それにTapしてBetする。最初は知人の横に座って、どんな感じか見学。一時間ぐらい出る目の傾向を調査して、いざ挑戦。 今回の資金はS$50。最低S$10からなので、最悪5回外れればGame Over。 結果。。。 S$160になった。 前回の自腹分を取り返せて満足。Slotよりも長く遊べるので初心者向けかな? 最初は論理的に出る目の傾向を掴もうとしていたけど、やっているうちにどうでもよくなる。最終的には「勘(運)」。 今回は勝ったけど、一人で行こうとは思わない。ちなみに中はFree Drinkなので買い物に疲れたら、Drinkだけ飲んで出てくるのもあり(?)。

Singaporeの固定電話から日本の固定電話にかける

Singapore(会社)の固定電話から日本の固定電話にかけたときのMemo. (外線)-(国際識別番号)-(国番号)-(先頭の0をとった日本の電話番号) 9-001-81-xx-xxx-xxxx を使うみたい。

Windows7のCommand

Windows7のCommand覚え書き。 説明 Command SendTo(送る)Folderを表示 shell:sendto StarupのApplicationを停止、管理 msconfig 見つけたら追記予定。

Wordpressで多言語対応。「qTranslate」pluginを導入

Wordpress を使って多言語対応のSiteを作ったときのMemo. 環境はWordpress 3.1.1 すでにいくつか多言語化するpluginが 公開されている 。今回は人気もあり入力がしやすそうな「 qTranslate 」を選んだ。 導入するのは他のpluginと同様にplugins directoryにおいてactivateする。 設定画面を開くと Could not write to "/opt/hoge/wp-includes/languages", Gettext Databases could not be downloaded! とerrorが出るので、wp-content/languagesを作ってapacheが書き込み出来るようにする。 # cd /opt/hoge/wp-content/ # mkdir languages # chmod 777 languages 日本語の設定を開くとlocaleが「ja」になっていて、文字化けの元になるらしいので、これは「ja_JP」に変更する。他は適当に。 基本はこれで完了。記事を投稿するときに別言語で登録できるようになっているはず。 次はThemeの多言語化。これはWordpressの基本機能を使う。Twentytenを元にしているなら、function.phpで load_theme_textdomain( 'twentyten', TEMPLATEPATH . '/languages' ); と指定しているので、twentyten/languages/jp_JP.moを置くと自動で読み込んでくれる。mo fileの名前は管理画面で設定した「locale」。(qTranslateがadd_filter('locale', 'qtrans_localeForCurrentLanguage',99)してるから。) ちなみにmoファイルを作成するには、 Poedit を使うと簡単に生成できる。詳しくは下記Blogを参考に。 Poedit 取扱説明書

[xyzzy]DefaultのClipboard-EncodingをUTF8nに設定

最近はVitenam(ベトナム)とかThailand(タイ)の言語も扱うので、 xyzzy の「クリップボードエンコーディング」の初期値がsjisになっているのを変更。 .xyzzyに下記を記述 (setq-default *clipboard-char-encoding* *encoding-utf8n*)   < Related Posts > 【xyzzy】デフォルトの文字コードと改行コードを指定する