【Windows】node.jsをインストールしてnpmコマンドを使えるようにする。

Windowsマシンへのnodeのインストールはnodistを使うと幸せになれる。

  • まずはコマンドプロンプトを起動して下記gitコマンドを実行。
    ※コマンドプロンプトからgitコマンドが使えるようになっていることが前提。
    ※windowsへのgitインストール方法はこちら
  • 完了したら、nodist\binフォルダまでのパスを通す。

※windowsのパスの通し方詳細はこちら

  • nodistまでのパスをNODIST_PREFIXとして環境変数に追加する。

  • コマンドプロンプトを再起動してupdateコマンドを実行
  • これでnodeの最新版がインストールされる。完了後、nodeコマンドとnpmコマンドが使えるようになる。

  • 使えるようになっているかどうかの確認は下記コマンドで行う。

それぞれコマンド実行後、バージョンが表示されればOK。

【Windows】環境変数(PATH)の通し方。

SDKとかをダウンロードしてきて直接配置した場合などに必要なのでメモ。

  • キーボードのWindows + Xを押す。
  • 出てきたメニューの中からシステムをクリック。
  • 左側のメニューよりシステムの詳細設定を選択。

  • 詳細設定タブに移動し、右下にある環境変数(N)をクリック。

ユーザー環境変数とシステム環境変数が設定できるので適宜状況に合わせて変数を追加していく。

変数PATHを追加したければ該当の行を選択し、編集ボタンを押して編集すればOK。なければ追加って感じで。

ユーザー環境変数とシステム環境変数の違いは下記ページなんかがわかりやすい。

http://qiita.com/yamap_55/items/9a3f7af47dc879104e71

【Windows】gitのインストールを行う。

WindowsマシンへのGitインストール

目的はコマンドプロンプトから使えるようにすること。

  • まずは公式にアクセス。

http://msysgit.github.io/

  • Downloadボタンをクリックしてインストーラーをダウンロードする。

  • ダウンロード完了したらインストーラーを起動する。

  • 基本的に指示に従いNextを押していればOKだが、下記画面の選択肢は真ん中のRun Git from the Windows Command Promptに必ずチェックを入れること。この選択によって、コマンドプロンプトからgitコマンドが使えるようになる。

  • インストールが完了したら、コマンドプロンプトを起動し下記コマンドを実行。

これで正常にバージョンが表示されればOK。

【Windows】コマンドプロンプトでドライブ間を移動する。

メモ。

  • Dドライブに移動
  • Eドライブに移動

思ったよりシンプルだった。

【Apache】htpasswdでBasic認証を掛ける。

メモ。

  • まずはBasic認証を掛けたいディレクトリに.htaccessファイルを下記内容で作成。

AuthUserFile.htpasswdファイルまでのパスをサーバールートから絶対パスで指定しないといけないので注意。
AuthNameは自由に。

  • 次に.htpasswdファイルを作成。

書き方はusername:passwordの書式で記述する。この際passwordはBase64で符号化されたものでないとだめなので下記サイトのようなサービスを用いて符号化されたパスワードを取得する。

http://tech-unlimited.com/makehtpasswd.html

符号化されたパスワードを取得できたら、下記のように.htpasswdを作成する。

これでブラウザからアクセスした際に認証が求められるようになる。

【CentOS7】Muninインストール手順まとめ。

muninとmunin-nodeを入れる

完了すると/var/www/html以下にmuninフォルダが生成されるので、ここをブラウザから見れるようにセットアップする。 ※バーチャルホストなりなんなりでのぞけるようにしてもいいし、フォルダを辿っていってもOK。

監視間隔を変更する

/etc/munin/munin.confに追記。

/etc/cron.d/muninを編集

munin-nodeを再起動する。

これで更新間隔が5分から1分に変更される。

【PHP】privateなメソッドを外部から実行する。

PHP5.4から実装されたClosure::bind()を用いる。

たとえば下記のようなコード。

当然Fatal error: Call to private method hello::world() from contextと怒られる。

しかしClosure::bind()を次のように用いると。

なんと画面にhello Worldが表示される。

第1引数に渡した関数内の処理は、第3引数に渡した名前のクラス内で実行されているものとして扱われるため、正常に関数を呼び出すことができている。 そう、Closure::bind()無名関数に限り実行時コンテキストを動的に変更できるというチート機能を有しているのである。

これを応用すると、PHPUnitでのテストケースにおいてもprivateな関数をテストすることができるようになるため、非常に強力な機能の一つであると言える。

【MySQL】大量にランダムなデータを作成する際の方法いろいろ。

知っとくと便利なので自分用にメモ。

1 or 2 などの2値をランダムに設定する

※この例だと1 or 2がセットされる。whenthenを増やしていけば複数の値に対応可能。

datetime型をランダムに設定

  • 現在時刻から1年後までの日付をランダムに生成
  • 指定日時から1年間の日付をランダムに生成

※2010-06-06をスタートとした場合

ランダムな文字列を生成する

  • 32文字のランダムな文字列を生成
  • 100文字のランダムな文字列を生成
  • 500文字!

※これ以上はconcat()をマンパワーで足していくくらいしか思い浮かばない。単に長さがほしいだけならrepeat()とかでもいいかも。

100万件のレコードを生成する

※20行繰り返すところがポイント。