2016-01-01から1年間の記事一覧

Spockを試す

JavaでBehavior Driven Developmentをするためのフレームワーク、つまり、機械に読める仕様書を書くためのフレームワークの1つであるSpockをeclipse上で試す。ついでにGradleも試す。 github.com Eclipseの設定 SpockはGroovyを使うので、EclipseでGroovyを…

SQL on HadoopだったらDWHでよくね?

ちょっと前からモヤモヤしていたこと――HiveやPrestoのようなSQLでHadoop上のデータを集計できるというようなものを使うのだったら、昔からあるデータウェアハウス(DWH)でよくないか? データを扱うにはSQLが、なんやかんやで向いているということが再確認…

Bashでロックを取る方法

前回に続いてBashネタで、Bashで排他ロックを取る方法について。 並行プログラミングをしようとするならば、排他は必要となる。シェルスクリプトでも並行性について考慮しなければならない場面があるが、アトミックにロックを取る手段はシェルスクリプトだけ…

Bashの括弧

最近Bashで凝ったものを作ろうとして、Bashについて結構しらべた。ネット上の情報は散らばっていたので、不完全ながら仕入れたネタをまとめようかと思う。特にカッコについて。 Bashのカッコには以下の種類がある。 { } ${ } ( ) $( ) <( ) >( ) (( )) $(( )…

chrootでビルド環境の作成2

以前chrootでクリーンなビルド環境を作る方法というのを書いたが、もっと簡単な方法を見つけたのでメモしておく。yumでrootディレクトリの位置を指定すれば良いのだ。 chrootでビルド環境の作成 - 超ウィザード級ハッカーのたのしみ 欲しいRHELかCentOSのイ…

ユニットテストの綺麗な書き方

テストばっかり書いている。テストコードなんかの綺麗さを追求しても仕方ないかなと思っていたのだけれど、適当に書いていると重複が多くて大変で、シンプルに楽に書くコツみたいなのを掴んできたのでメモしておく。JUnitを対象にする。 テストクラスの単位 …

データにもOSI参照モデルがある

計算機の通信機能(プロトコル)には階層があって、OSI参照モデルだとかDARPAモデルだとかが知られている。有名なものものとして、物理層はイーサネット、ネットワーク・トランスポート層はTCP/IP、アプリケーション層にはHTTPが挙げられる。イーサネットの…

PICTを試す

ちょっと古いツールではあるが、PICTというMicrosoft製のテスト項目作成ツールを見つけたので使ってみた。All Pair法という2つのパラメータの値の組みわせを網羅するようなテストを生成する。 github.com Linux環境でビルドするにはclang++とlibc++-devが必…

Test Driven DeveopmentとDesign By ContactとAll Pair Testing

Test Driven Deveopment (TDD) とDesign By Contact (DbC)とAll Pair Testingを組みわせたら最強の開発プロセスを実現するテスティングフレームワークが作れるのではないかと思った。だらだらとまとまりなく書きます。 TDDは仕様を決定したら、先にテストを…

碁と統計

fj.hatenablog.jp ニューラルネットワークである局面を入力したら終局図が出力できるようなものを作れるはずだと考えていたが、よくよく考えると別にニューラルネットワークでなくてもよいかもしれない。 碁と統計が相性が良さそうだという事実はモンテカル…

Batsというテストツールが便利だった

Batsというテストツールをしばしば見るので、使ってみたら便利だった。 github.com シェルのコマンドのテストに使います。テストコードは、ほとんどBashのDSLで書かれます。テストケースは以下のように書きます。 @test "echo hello" { out=$(echo hello) [ …

ニューラルネットワークと囲碁

結構前にニューラルネットワークを碁の思考エンジンに使えるのではないかとほんの少しだけ試みてみた。その時は特に成果もなく終わったが、同じように考えている人はいて、科学は進んでいる。 以下の論文は、深層畳み込みニューラルネットワークとモンテカル…

Btrfsを試す

次のLinux用ファイルシステムのBtrfsを使ってみた。(今更?) インストール Ubuntu14.04では # apt-get install btrfs-tools # btrfs version Btrfs v3.12 でコマンド類がインストールされます。 フォーマット /dev/sdb1をBtrfsでフォーマットします。 # mk…

opensslコマンドでファイルを暗号化

file.datを暗号化してfile.dat.encryptedを出力する。鍵は./passwordとする。 $ openssl aes-256-cbc -e -in file.dat -out file.dat.encrypted -pass file:./password 脆弱性があるのでaes-256-ecbは使ってはダメ。aes-256-cbcを使うこと。 復号化する際は…

継承はメソッドを使いまわすためにあるのでない

まだまだオブジェクト指向を極めたわけではないのですが、最近気になったこと。 オブジェクト指向の継承はメソッドを使いまわすためにあるのではないということです。 Fooというクラスがあって、BarというクラスがFooを継承(inherit)しているとする。つまり…