2015
01/23
17:52

pytest-localserverでテスト用のモックサーバを作るLatest!

[python][py.test]

httpリクエストを発行する処理を書いている時に気軽にテストを書きたいなら pytest-localserver プラグインがおすすめです。 ### インストール ``` pip install pytest-localserver ``` ### `` ffi.h: No such file or directory `` というエラーが出たら libffi-devライブラリをインストールして下さい。 ``` sudo apt-get install libffi-dev ``` ### 使い方 pytest-localserver をインストールしていると、特になにもしなくてもテストケースで ``httpserver`` というフィクスチャが使えるようになります。 ``` def test_server(httpserver): pass

2015
01/19
18:25

watchdogでファイルを監視している時にVimでファイルを保存すると三回イベントが発行されて困ったらdropオプションを使おう

[python][vim]

py.testでテストを走らせるのにwatchdogの ``watchmedo`` コマンドを使っているのですが、 Vimでファイルを保存するとcreate update modifyの3つのイベントが発行されて、 テストが三回走ってしまうという現象に悩まされました。 これは ``--drop`` オプションをつけることで解決します。 GithubのISSUESに解決策がありました。 http://github.com/ ファイル更新を監視してpy.testを走らせる例は以下のようになります。 ``` watchmedo shell-command --patterns="*.py" -D -R --drop --command='py.test' ```

2015
01/14
10:46

SATAポート拡張ボード PCIX2-4PSATA3 および SATA3RI4-PCIE のBIOSを更新する

[HDD]

片方は玄人志向の、もう片方はエアリアの商品ですが、中身は同じです。 エアリアの方は高負荷時にS.M.A.R.Tコマンドの発行でディスクが消えるという現象が2回発生しました。 玄人志向の方は発生していません。 ファームウェアの違いが原因と睨んでアップデートをすることにしました。 **おことわり:ファームウェアのアップデートに失敗してカードが使えなくなっても私は責任を負いません。** ### ファームウェアのダウンロード 下記ページの下の方に "Télécharger" と書かれたリンクがあるのでそこをクリックしてダウンロードします。 http://www.station-drivers.com/index.php/downloads/Drivers/Marvell/Sata/MV9xxx-%2888SE91xx-92xx%29/Marvell-MV-91xx-92xx-SATA-6G-Controller-Bios-Version-2.3.1055/ ### ブータブルUSB DOSディスクの作成 ネット上にたくさん情報があるのでそちらを参照して下さい、例えば、

2015
01/13
17:32

numpyの配列比較で "ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()"

[python][numpy]

以下のようにnumpyの配列をassertしようとしてエラーになりました。 ``` assert np.array([1,2,3]) == np.array([1,2,3]) ``` numpyの配列を比較すると、「配列内の個々の要素について比較した結果」を配列として返すので、上のコードは次のような意味になります。 ``` assert np.array([True, True, True]) ``` True値が3つ入った配列をassertしてることになって、タイトルのようなエラーになったわけです。 なので、元のコードを次のようにしてやるとちゃんとassertできるようになります。 ``` result_array = np.array([1,2,3]) == np.array([1,2,3]) assert result_array.all() ```

2015
01/08
15:35

お金をかけずにSnapRaidを使ってファイルを保護しよう - その5 - SnapRaidを運用しよう

[SnapRaid][HDD]

前回までで長い長い初回のsyncがおわりました。 今回は初回のsyncが終わった後、snapraidを日々運用して行く上で必要なコマンドをまとめます。 ### 操作のログを取る コマンドを発行する際にはログを取るようにしましょう。 リードエラーが起こるとコンソールにその旨表示されますが、どのディスクでエラーがあったのかまではわかりません。 ログにはエラーが起こったディスクが記録されているので、どのディスクの健康状態が悪化しているかすぐにわかります。 ``` snapraid -c snapraid.conf -l command.log command ``` ### ファイルを追加したらsyncを行う snapraidで保護しているディスクに新しいファイルを追加したら、手動でsyncを行う必要があります。 RAID5/6のように自動でパリティの計算は行われません。 つまり、syncを行うまでは、新しく追加したファイルは保護されていない状態です。 ファイル追加後は忘れずにsyncを実行しましょう。

2015
01/06
10:36

お金をかけずにSnapRaidを使ってファイルを保護しよう - その4 - SnapRaidを実行しよう

[SnapRaid][HDD]

> Windows版の設定ファイルで解説しています。Linux/MacOSの方は最後にある設定ファイルを参考にして下さい。 いよいよファイル保護の本番です。 この記事ではドライブの追加、設定ファイルの作成、最初のコマンド実行までを解説します。 まずはパリティ用のディスクを追加します。 保護したいドライブのうち、最大容量のものと同じか、それ以上の容量のディスクにする必要があります。 例えば、現状ディスク構成が以下のとおりとします。 * C:\ システムディスク 250GB * D:\ データディスク 1TB CとDにあるファイルを保護するため、新たに一台パリティ用のディスクを追加する場合、 Dが1TBで最大なので、追加ディスクも1TBのものであれば大丈夫です。 ここでは将来的にデータディスクを大容量のものに交換することを考えて2TBのものにしてみます。 ディスク構成は以下のようになりました。 * C:\ システムディスク * D:\ データディスク 1TB * E:\ パリティディスク 2TB 次にSnapRaidの設定ファイルを作ります。

2014
12/29
09:31

お金をかけずにSnapRaidを使ってファイルを保護しよう - その3 - SnapRaidをインストールしよう

[SnapRaid][HDD]

[SnapRaidのDownloadページ](http://snapraid.sourceforge.net/download.html)からOS毎のファイルをダウンロードしてきて解凍します。 ### Windowsの場合 64bitの場合、snapraid-7.0-windows-x64.zip を、32bitの場合 snapraid-7.0-windows-x86.zip をダウンロードして、 任意のディレクトリに解凍すればおしまいです。 ### Ubuntuの場合 snapraid-7.0.tar.gz をダウンロード後解凍して make します。

2014
12/25
17:28

お金をかけずにSnapRaidを使ってファイルを保護しよう - その2 - memtest86でメモリをチェックしよう

[SnapRaid][HDD]

さっそくSnapRaidをインストール、といきたいところですが、その前にメモリのエラーチェックをしましょう。 メモリにエラーがあると、ファイル操作だけでファイルが壊れる他、パリティの計算もおかしくなるので、 ファイルの保護どころではありません。 メモリのチェックはSnapRaidのFAQにも最重要事項の一つとしてあげられています。 必要なものはUSBドライブ(あるいはCD-R/DVD-R)とmemtest86です。 ### memtest86をダウンロードする [memtest86のHP](http://www.memtest86.com/download.htm)から利用するマシンのOS向けファイルをダウンロードします。 * ISOイメージをダウンロードした場合は、アーカイブ解凍後、* Memtest86-5.1.0.iso * を書き込みソフトを使ってメディアに書きこみます。 * Windows用USBイメージをダウンロードした場合は、アーカイブ解凍後 *imageUSB.exe* を実行し、USBのドライブにイメージを書き込みます。 * Linux用USBイメージをダウンロードした場合は、ddを使ってUSBドライブに書き込みます。

2014
12/24
11:37

py.testのはじめかた

[python][py.test]

Pythonでテストを書くには色々ツールがあるんですが、昨今のメインストリームはpy.testだそうです。 py.test には、 * 既存のテストツール向けに書かれたテストケースも実行可能 * DI * 豊富なプラグイン などの特徴があります。 ### インストール ``` sudo pip install -U pytest ``` ドットが ** ない ** ことに注意 ``` py.test --version

2014
12/23
09:50

node.jsの求心力低下からio.js誕生までの顛末

[node.js][io.js]

海外ではWIREDでも20日前に取り上げられてますが、国内では全く話題になりませんね。私も昨日知りました。 http://www.wired.com/2014/12/io-js/ 一番懸念すべきはユーザー層の分離だと思うんですが、色々斜め読みしたかぎりではそれを話題にしている人がいないのが不思議です。 以下にざっくりとしたまとめを。 ![tuning_fork_by_ Shaylor_under_CC2.0.jpg](/userdata/blog/tuning_fork_by_Shaylor_under_CC2.0.jpg) > "[Tuning Fork](https://www.flickr.com/photos/shaylor/53819053)" by [Shaylor](https://www.flickr.com/photos/shaylor/) is licensed under [CC BY-SA 2.0](https://creativecommons.org/licenses/by-sa/2.0/) ### 流れ 2014年になったあたりから、Joyent主導でのプロジェクト管理にコミッタから不満が出ていたらしい。

2014
12/22
09:40

お金をかけずにSnapRaidを使ってファイルを保護しよう - その1 - SnapRaidとは

[SnapRaid][HDD]

HDDにおいてあるファイルっていつの間にか壊れていたりしてがっかりすることがありますよね。 そこでファイルを保護したいと思うわけですが、RAIDを組もうとすると途端に初期費用がかさみます。 * HDD n台収納のNASサーバ * 同容量の空のHDD x n台 + パリティディスク DRoboとか買えれば最高ですけど、べらぼうに高いです。仕事で使うのでもない限りそんなお金はかけられません。 そこでSnapRaidの出番です。お金をかけずに手間と時間をかけてファイルを保護しましょう。 ### SnapRaidとは SnapRaidは Andrea Mazzoleni さん作のフリーソフトウェアです。 http://snapraid.sourceforge.net/index.html SnapRaidはディスク上にあるファイルのパリティ値を計算し、 ファイルが壊れた時にそのパリティを元に修復できるようにします。 SnapRaidの良い所は、 * Windows/Linux/MacOSのどれでも動く * 既存の構成にHDDを一台追加するだけで運用開始できる