ノート

Test Driven DeveopmentとDesign By ContactとAll Pair Testing

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

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を使うこと。 復号化する際は…

chrootでビルド環境の作成

chrootで綺麗なビルド環境を作る方法。ビルド程度ならLXCを使う必要もない。 RHELを意図していますが、用意できないのでCent OSでやる。 Cent OS 7の環境を作ります。 インストールするときにCDのどこからrootfsを持ってくるのかよくわからなかったのでLiveO…

ブロックチェーンについてのメモ書き

ブロックチェーン技術についてのまとまりのないメモ書き: 中央で管理されたデータベースでなしに、P2Pのネットワークの上にトランザクションを発行できるのが画期的。 ネットワーク上に存在するのはコミットログだけ。 トランザクションは10分毎にブロック…

Jupyterはデータとか数式いじる人には最強のツールかもしれない

「Jupyter」という主にPythonのためのWebベースのシェルに感動した。 インストールと起動 Ubuntu14.04なら、 $ sudo apt-get install build-essential python3-dev $ sudo pip3 install jupyter でインストールできるはずです。 $ jupyter notebook と打つと…

CephのStraw2について

Cephについて調べております。 CRUSHの中のstraw bucketというアルゴリズムに驚嘆したのですが、改良の余地がありそうだと思えたので、もっといい方法はないかと考えてしました。しかし、Cephの作者はおそろしく頭がよく、私の発想の2段階先に行っていました…

Ceph, 特にCRUSHアルゴリズムについて

Cephに興味が出たので調べていまして、そのメモ代わりに…… どのサーバーが何のデータを持っているのか覚えておかなければならない問題 分散ストレージシステムで面倒な課題にデータの位置の管理があります。あるファイルがあったとして、そのデータを読みた…

HTMLにTeX数式を書く。

MathJaxというライブラリを使えば簡単にできます。 <head> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { inlineMath: [['$','$'], ['\\(','\\)']], displayMath: [['$$','$$'], ['\\[','\\]']], processEscapes: true } }); </script> </head>

開発ステップ数を測る

開発ステップ数を測るなんて無意味なことだと思うけど、そういうことこそ効率化! C, C++, Javaの場合について。 以下のシェルスクリプトを実行すれば修正の実効ステップ数が出るはず。 before=$1 # path to source file before modified after=$2 # The pat…

FANNのテスト

PyBrainはあまり速くないので,名前からして速そうなFANN(Fast Artificial Neural Network Library)を試してみる. インストール方法のメモ Fast Artificial Neural Network Library (FANN) 環境はUbuntu 14.04 apt-getでも取れるがバージョンが2.1.0なので…

PyBrainのテスト 2

PyBrainでbuildNetwork関数を使わずにネットワークをつくる方法. バイアスパラメータを入れるには,BiasUnitを作って各レイヤーにつなげる必要がある. 例によってXORを学習させる. from pybrain.datasets import SupervisedDataSet from pybrain.supervis…

PyBrainのテスト

ちょっとニューラルネットワークで試したいことがあるので,最初の段階として,PyBrainを用いてニューラルネットワークというものを使用してみる. 階層型ニューラルネットワークの例題としてXOR演算を学習させる. 以下,コード from pybrain.datasets impo…

LinuxでのプロキシとDNSの設定

社内ネットワークとか,いわゆるイントラネットの中にあるLinuxマシンからインターネットに接続する場合,プロキシサーバを経由することが多い.また,社内用のDNSサーバが設けられていることもある.Linux(特にRedHat, CentOS, Fedora)でのDNSとプロキシ…