Jmeter 2.10 で proxyserver.jks error
Jmeter で Proxy 立ててサンプラーを作成しよう思ったのですが、 Proxy を開始しようとするとエラーが発生しました。 jmeter.log を見るとこんなメッセージが出てます。
WARN - jmeter.protocol.http.proxy.ProxyControl: Could not open/read key store C:\Applications\apache-jmeter-2.10\bin\proxyserver.jks (指定されたファイルが見つかりません。)
それとなくググってみたら、どんぴしゃでヒット。 Jmeter 2.10, proxyserver.jks error
そもそもインストール時に要件を確認すべきだったのですが、jmeter 2.10 って、 JDK7 が必須なんですね。作業していた端末、 java7 は入っていたのですが、 JRE でした。 JDK7 を入れてパス通してあげたら無事起動出来ました。
Sublime Text + Emmet + Hayaku をインストール
社内有識者におすすめなエディタを聞いたところ、お薦めらしいので入れてみました。
■Sublime Text
http://www.sublimetext.com
記事時点でStableだった2.0.2を使用。
Package Control のインストール
Package を入れるためにはまず「Package Control」なるものをインストールします。
手順は https://sublime.wbond.net/installation の通り。
今回は"Simple"の手順でやってみました。
メニューから View > Show Console で画面下部にコンソール表示。コンソールに以下コマンドをコピペして実行します。上記サイトの通り1LinerでもOKです。Sublime Text の 2 と 3 で実行コマンドが違うようですね。
import urllib2,os; pf='Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler( ))); open( os.path.join( ipp, pf), 'wb' ).write( urllib2.urlopen( 'http://sublime.wbond.net/' +pf.replace( ' ','%20' )).read()); print( 'Please restart Sublime Text to finish installation')
これで再起動すると、Package Control が有効になります。
Package の追加とインストール
ctrl + Shift + P でコマンドパネルを呼び出し、"repo"と打ち込めば「Package Control: Add Repository」がインクリメントサーチで出てきます。選択すると画面下部に Github などの URL を入力する欄が出てくるので、以下URLを打ち込みます。
■Emmet
https://github.com/sergeche/emmet-sublime
■hayaku
https://github.com/hayaku/hayaku
もう一度コマンドパネルを呼び出し、「Package Control: Install Package」を選択、上で追加したパッケージを選択して再起動するとインストール完了です。
試しに新規ファイルで書いてみます。
div#head>#siteName^div#main
と書いて、Ctrl + e で展開、、と。
すると「Please wait a bit while PyV8 binary is being downloaded」とエラーが出ました。
https://github.com/sergeche/emmet-sublime/issues/259 をみると、実行するために必要なものが足りないようです。https://github.com/emmetio/pyv8-binaries#readme から使用OSに応じたZIPファイルを落とします。
コマンドパネルを呼び出して"Browse Package"を選択、開いたディレクトリに上で落としたZIPを展開したフォルダをコピーして再起動すれば、Ctrl + e で展開出来るようになりました。
TDD の 「型」 を学ぶために始めたアンクルおじさんのBowling Game
先日から読み始めた「Clean Coder」で紹介されていた「型」。
- 作者: Robert C. Martin,角征典
- 出版社/メーカー: アスキー・メディアワークス
- 発売日: 2012/01/27
- メディア: 大型本
- 購入: 12人 クリック: 645回
- この商品を含むブログ (38件) を見る
恥ずかしながら知らなかったのですが、有名なんですね。
ArticleS.UncleBob.TheBowlingGameKata
本文の一番最初にある「Here」にパワポがリンクされているので*1これをダウンロードして写経。
パワポには TDD やリファクタリングの流れ、その理由などが簡潔に書いてあるので、勉強になります。
この型を何度も何度も繰り返すことで、意識の流れや手の動きを自分のカラダに定着させるようです。
私はNetBeans + JUnit4 でやったのでパワポのコードは若干異なりましたが、こんな感じ。
そういや、以前読んだWEB+DBPressの記事で JUnit のテストメソッドは日本語で書いた方がテスト結果一覧を見たときに分かりやすいよ、という記載があったのを思い出した。
日本語メソッドっていけるんですね。
*1:最初どこを見ればいいのか分からなかった^^;
Node.js + Express + MongoDB(mongoose) を始める
内容はほぼCreating a REST API using Node.js, Express, and MongoDB | Christophe Coenraetsのままです。
終盤での mondodb のアクセスの部分のみ元サイトと違い mongoose を使ったコードに置き換えてみました。
環境は Windows8 pro x64 です。
Node.js をインストールする
- node.jsにて、インストールボタンをクリック。
- ダウンロードしたインストーラを実行。インストール完了時点でパスが通っていました。
- コマンドプロンプトで "node -v"と打ち、バージョンが返ってくることを確認しておきます。
これで Node.js の使用準備はOK。
- 今回作業用のフォルダを作成しておきます。(以後、ルートフォルダと呼びます。)
- ルートフォルダ内に server.js を作成します。公式にもあるおなじみのやつ。
- コマンドプロンプトで以下を実行し、サーバーを起動します。
node server.js
http://localhost:3000 にアクセスすると、"Hello, World"の文字列が返ってくることが確認できます。
Express をインストールする
ExpressはNode.jsの軽量Webアプリケーションフレームワークです。少し調べたところ、Express だと規模が大きくなると1つのファイルに色んな処理が入って管理が大変になるらしいです。
将来的にはSailsというやつがいいのかな?この辺りは今後の調査対象ということで。
では、本題に戻って。
- ルートフォルダ内に package.json を作成します。
- コマンドプロンプトで以下を実行し、Express をインストールします。
# プロキシ環境の場合は事前にプロキシを指定しておく npm config set proxy http://url:port npm install
Expressモジュールがnode_modulesのサブフォルダにインストールされます。
server.js を修正してサーバーを再起動し、Express が動作していることを確認します。
以下のアドレスにアクセスすると、それぞれの JSON が返ってくることが確認できます。
データベース内のすべてのワインを取得: | http://localhost:3000/wines |
特定のIDでワインを取得: | http://localhost:3000/wines/1 |
ドメインオブジェクトの分離
ドメインオブジェクト(今回は wine)をモジュール化して server.js から分離します。
- ルートフォルダ配下に routes フォルダを作成します。
- routes フォルダに wines.js を作成し、server.js から wine.js を呼び出すように変更します。
- サーバーを再起動し、前回と同様に JSON が返ってくることをブラウザで確認します。
MongoDB をインストールする
- Downloads - MongoDBから、ダウンロードして解凍します。
- Install MongoDB on Windowsに従ってセットアップします。
- 解凍後にやったのは、data フォルダと data\db フォルダを用意したぐらい。
- この状態で mongod.exe を実行しても上記フォルダが not found となったので、以下のように --dbpath オプションで場所を指定して実行しています。何故。。
E:\Users\bin\mongodb\bin\mongod.exe --dbpath "E:\Users\bin\mongodb\data"
↑を実行して、↓と出ればOK。
・・・ Wed Jul 10 15:12:29.751 [websvr] admin web console waiting for connections on port 28017 Wed Jul 10 15:12:29.751 [initandlisten] waiting for connections on port 27017
Mongoose をインストールする
- package.json に mongoose の依存を追記し、npm でインストールします。
npm install
mongooseについては、以下のサイトを参考にしました。
Mongoose API v3.6.14
node.js + mongoose + mongodbで遊ぶ - Last Verse
node.js から MongoDB にアクセス (Mongoose の紹介) - KrdLab's blog
公式サイトの api については、model.jsでメソッド名を見てればなんとなく用途はわかります。show code をクリックすれば具体的な実装も見れます。
REST APIの実装
URIの設計は以下になります。
Method | URL | アクション |
GET | /wines | すべてのワインを取り出す |
GET | /wines/:id | 指定された_idのワインを取り出す |
POST | /wines | 新しいワインを追加 |
PUT | /wines/:id | 指定_idのワインを更新 |
DELETE | /wines/:id | 指定された_idのワインを削除 |
server.js と wine.js を以下のように書き換えます。
追加削除は問題なく出来たのですが、更新の部分で少し嵌りました。findByIdAndUpdate の第2引数に更新したい Object を入れるのですが、この Object は _id の要素を持っていてはダメです。
そのため、前の行で _id 要素を delete しているわけです。参考にしていたサイトは特定の要素を指定して更新していたので、最初気付きませんでした。よく考えれば至極当然のことなのですが。
サーバーを再起動して、上記URLを踏んで確認します。
といっても、今の状態で GET 以外のメソッドを実行することは難しいですので、元サイトではcurl and libcurlを利用してコマンドで確認しています。
最後の確認まで出来ていないけど、ここまで。
元サイトや参考にしていた下記の書籍は、mondoDBのドライバを直接叩いていましたが、個人的には mongoose はAPIが分かりやすく、好みでした。
プロになるためのJavaScript入門 ~node.js、Backbone.js、HTML5、jQuery-Mobile (Software Design plus)
- 作者: 河村嘉之,川尻剛
- 出版社/メーカー: 技術評論社
- 発売日: 2012/12/07
- メディア: 大型本
- 購入: 4人 クリック: 1,144回
- この商品を含むブログ (7件) を見る
Chrome のスニペット機能を使う
Google Chrome/Firefoxで使える開発スニペット集「DevTools Snippets」|オープンソース・ソフトウェア、ITニュースを毎日紹介するエンジニア、デザイナー向けブログで知りました。便利そうなので早速設定してみます。
- chrome://flags/ を開く。
- 「デベロッパー ツールのテストを有効にする」を有効にする。
- Chrome 再起動。
- F12 とかで、デベロッパー ツールを開く。
- 右下の歯車「Settings」を開く。
- 「Experiments」の中の「Snippets support」を ON にする。
- デベロッパー ツールを再度開くと、「Sources」タブに「Snippets」の項目が出来るので、右クリックで適宜ファイル追加。
こんな感じ。
紹介されていたスニペットをいくつか登録しておきました。
DevTools Snippets
Github で リポジトリを削除する方法
人様のプロジェクトを眺めていたら、誤って fork してしまい、自身のアカウントにもプロジェクトがコピーされてしまいました。。
で、プロジェクトを削除する方法。
- 削除したいプロジェクト(forkした自分のアカウント配下のやつね!)を選択。
- 画面右の「Settings」を押下。(画面上部のグローバルメニューじゃないよ!)
- 画面最下部の「Delete this repository」を押下。
- 削除したいアカウント名/プロジェクト名を入力して「I understand ...」を押下。#アカウント名/プロジェクト名は画面上にボールド体で表示されていますね。
元には戻せないから、わざわざプロジェクト名を入力させるようになったのかな。
gistのコードをはてなブログで表示する
gist の最後の id (https://gist.github.com/iwa4/5907911 だったら 5907911 の部分)を
[gist:id]
の書式で貼り付けます、以上。
# CSS弄って見た目調整している記事をいくつか見かけたけど、Gist記法ってのが公式である模様。