javascriptの関数内で定義した変数の扱い

javascriptの関数内で定義した変数の扱いって独特。 varをつけるかどうかで、変数の有効範囲が変わる。
例えば

function() {
var x = 7;
y = 19;
}

上のように関数内で変数を定義する。

すると、関数の外からは、yの中身19は呼び出せるけど、xの中身7は呼び出せない。

javascriptの関数内では、変数を定義するとき、varをつけて定義すると、ローカル関数になり、varを付けないで定義するとグローバル変数になる。らしい。

このことを知らなかったため、余裕で3時間は費やしして泣きそうになった。

自分が使っているjavascriptの初心者用の本には、このことには触れていなくて、varは省略してもいいとしか書いてなかった。

varを省くと全部グローバル関数になるんだから、varは全部省略すればいいと、初心者としては思うんですけど、プログラムが複雑になると、変数が重なったりするから、基本的には関数内では、varをつけてローカル関数にしておいたほうが良いらしいです。

人民元切り上げとか中国関連本とか

DVC00001

人民元切り上げへというニュースを見て少し興味を持ったので、中国関連本を何冊か買ってきてざっと読んでみた(基本的に小説以外の本は興味があるところだけ拾い読み)。分厚い本は読む気がしないので、薄い本ばかり3冊を選択。本屋でいろいろ見て思ったんですが、わかりやすくまとまった本ってなかなか無いです。

面白いほどわかる!いまの中国―経済・社会・外交・政治

サルにもわかる式の初心者向け本。残念ながら、面白いほど!はわかりませんでしたが、広く薄く説明してあり、とっつきやすい本でした。

中国を知る―ビジネスのための新しい常識 (日経文庫)

よくまとまっていてわかりやすかった。ビジネスのため~と書いてありますが、ビジネスに興味がない私が読んでも結構興味深く読めました。上の本をとばして最初にこれ1冊を読めば十分かも。あとは、必要に応じて詳しい本を選べばよさそう。

「中国全省を読む」事典 (新潮文庫)

アマゾンの中国カテゴリでよく売れていたのを見てたので買ってみましたが、自分にはいまいちでした。知らない固有名詞が説明なしでたくさん出てくるので、読みにくく感じてしまった。すでに中国の地理にある程度詳しい人が読むと面白いのかも。

大地の咆哮(ほうこう) (PHP文庫)

これは去年読んだ本。外務省に入った著者が中国に語学研修に行く場面から始まる。小説を読むような感覚でスイスイ読めて面白かった。

ロリポップのレンタルサーバー設定に変更あり。

最近、過去に書いたロリポップのレンタルサーバー設定の記事へのアクセスが急増していました。

これには思い当たることがありますので、ちょっとメモを書いておきます。
なお、私は全くの素人なので、間違っていることも書いていると思います。セキュリティ面も含めた正確な情報は誰か詳しい人のを参考にしてください。

結論から書くと、require_onceで、内部のファイルを呼び出すと急にエラーが出るようになるというトラブルにあったんですが、
ロリポップ!のサーバー管理画面内にある、php.iniで 新しく設定できるようになった、allow_url_fopenをonにすると以前と同じように使えるようになりました。(allow_url_includeはoffのままで大丈夫だった。検索するとセキュリティ面ではどちらもoffにしておいた方がいいとい書いている人あり)

今ロリポップは新構成のサーバーへ少しずつ移行しているらしいのですが、php.iniの設定項目が、新構成のサーバーになると増えるんですよね。想像ですが、この辺が何か関係していたんじゃないかと思います。

以下詳細。

つい最近、新しくロリポップのレンタルサーバーでサイトを作ろうとした時、
PEARのライブラリを、PHP内にてrequire_onceで呼び出そうとしたところエラーが出ました。Fatal errorとか、何種類か出た。
検索してみると、私の他にもrequireやincludeでエラーが出ている人がいました。

どうも、require_onceで指定しているファイルが見つからないためにエラーが出ているようでした。(しかし、同じサーバー内で使用している以前作ったサイトはrequire_onceが問題なく使えていた)

.htaccessでパスの設定をしていたのですが、試しにフルパスでファイルを指定してあげると、pearのcache liteは使えるようになりましたが、Pagerは指定のファイルからさらにインクルードして他のファイルを呼び出しているためか、フルパスを指定しても、また別のエラーメッセージが出てファイルが見つからないため使えませんでした。

で、数時間いろいろ調べたところ、結論で書いたように設定を変えてやると全部以前のように使えるようになりました。こういうので時間を浪費するのって凄く勿体無いと思うので、一応メモ代わりにここに残しておきます。
ロリポップ!

BUFFALOのマイクBSHSM06WHを買ってみた。

バッファローコクヨサプライ BUFFALO マイクロフォン スタンダード ホワイト BSHSM06WH
【BUFFALO マイクロフォン BSHSM06WH】
 

スカイプ(skype)用のマイクを購入しました。
「バッファロー マイクロフォン スタンダード ホワイト BSHSM06WH」という物です。

以前は、スカイプにはエレコムかどこかの安いヘッドセットを使っていました。このヘッドセットの線が痛んでしまい接触が悪くなったため買い替えようと考えていたのですが、以前からヘッドセットを頭につけたり外したりするのは面倒だと感じていました。

そこで、ヘッドセットではなく、机の上におけるタイプのマイクを買うことにしました(スピーカーはPCのスピーカーや、イヤフォンを使用)。ニコニコ動画を見ているとよくこのバッファローのBSHSM06WHというマイクが紹介されています。アマゾンでマイクを物色しても、BSHSM06が評判もよく、形も気に入ったのでこれを使ってみることにしました。
 

バッファローコクヨサプライ BUFFALO マイクロフォン スタンダード ホワイト BSHSM06WH
マイクスタンドの根元部分はボール状になっています。ここがクルクルと回転することにより好きな角度にマイクを調整できます。

マイクの設定は何もする必要がなく、マイク端子にコードを一本差し込むだけで使えました。しばらく使用していますが、マイクの性能に関しては何も問題ありません。BSHSM06WHは1,000円もしない割には、デザインが結構良くて、机の上に常備しておいても、邪魔に感じない点が気に入っています。以前はヘッドセットを出し入れするのが面倒だったので、この煩わしさがなくなったのも嬉しいです。あとは、やっぱりヘッドセットを使わないと頭の辺りがすっきりするので開放感があり気持ちよいです。

PHILIPS イヤフォン SHE9701-Aを購入

PHILIPS イヤフォン SHE9701-A

【SHE9701-A】

今まで使っていたイヤフォンのコードが切れてしまったので、PHILIPSのイヤフォン SHE9701-Aを買ってみました。

デジタル機器にはぜんぜん詳しくないので、素直にアマゾンのイヤホンカテゴリで一番売れていた、このフィリップスのイヤフォンを選びました(私が見たときのイヤフォンカテゴリ1位は、PHILIPS イヤフォン SHE9700-A黒で、その白色タイプがこのSHE9701-A)。

PHILIPS イヤフォン SHE9701-A

amazonでは、SHE9700-Aシリーズはアウトレット品のために安くなっていました。パッケージには特に傷などはありません。ただの在庫整理なのかも。

PHILIPS イヤフォン SHE9700-A

SHE9700-Aシリーズはインナーイヤー型のイヤフォンです。インナーイヤー型を使うのは初めてです。ちゃんと耳にフィットするのかなと少し心配していましたが、装着してみると予想していた以上に綺麗に耳の穴に入ります。

PHILIPS イヤフォン SHE9700-A

ゴムのカバーを外すと上の写真のようになっています。ゴムのカバーは標準で装着されているものの他に、ワンサイズ大きいものと、小さいものが付属していました。私の場合は標準タイプでピッタリでした。

SHE9701-Aを使ってみた感想

前に使っていたイヤフォンが数百円の物なので、すぐに音の違いはわかりました。今まで聞こえなかった細かな音が聞こえるようになり、低音もよく聞こえるようになりました。音には特にこだわりなどはないので、私にはこれで十分過ぎると思いました。

インナーイヤー型のイヤフォンを使ってみて気づいたマイナスポイントは、イヤフォンを両耳にはめたまま話をすると、自分の声がちゃんと聞こえない点です。耳の穴がピッタリと塞がれるので、耳に水が入った状態で話しているような感じになります。パソコンでスカイプを使う場合などには、不便だなと感じました。今までは、インナーイヤー型でない昔からあるタイプの物を使っていたので、普通に自分の声が聞こえていたんですよね。

もともと、そういう使用目的用のイヤフォンでないので、仕方ないですが、その点はちょっと不便だなと感じました。それ以外の点は、作りもしっかりしていて長く使えそうなので不満はありません。