PHPのビルトインサーバーでリモートからのアクセスを受ける

そういえば今までPHPのビルトインサーバーを使ったことなかった…
フレームワークの調査の為にまずはビルトインサーバーで確認したいと思って、EC2上でチュートリアルそのままコピペしても自分のマシンから繋がらず。

起動する時のIPの指定の仕方が127.0.0.1とかlocalhostだとローカルからしか繋がらなかったりするのです。

php -S 0.0.0.0:80 -t public

こんな感じで0.0.0.0を使います。

なんでこんな風になるかというと、0.0.0.0を使うことでそのマシンがもつ全てのアドレスにbindするということなんですね。
なので、PHPに限らずこの手のコマンドとか設定が出てきたら注意しないとですね。

AWSで複数アカウント使う状況でaws-cliを使う時

profileを設定することによって複数アカウントを使い分けられます。
複数アカウント最初から使うならデフォルト設定は無しでprofile必須の方が良さそう。

aws configure --profile hoge

これでhogeというプロファイルの設定が出来る
コマンドを使う時は --profile hogeを追加して実行する必要がある。

aws s3 ls --profile hoge

など

Ethereum入門のSolidityのコードをver. 0.5.7でコンパイルする

book.ethereum-jp.net 入門としてよくまとまってるこれ、SolidityのコードがMacに普通にインストールしたコンパイラで動かなかったのでメモ
最初にコンパイルしようとしたところ

Error: Source file requires different compiler version (current compiler is 0.5.7+commit.6da8b019.Darwin.appleclang - note that nightly builds are considered to be strictly less than the released version
pragma solidity ^0.4.0;
^---------------------^

pragmaで怒られてしまった。ここを

pragma solidity >=0.4.0;

に変更してみる。
再度コンパイル

Error: The state mutability modifier "constant" was removed in version 0.5.0. Use "view" or "pure" instead.
    function get() public constant returns (uint retVal){
                          ^------^

なんかviewかpure使えと言われてるので、とりあえずview使う。

pragma solidity >=0.4.0;

contract SingleNumRegister {

    uint storedData;
    function set(uint x) public{
        storedData = x;
    }
    function get() public view returns (uint retVal){
        return storedData;
    }
}

こんなコードにしてコンパイル
とりあえずコンパイル通ってBinaryとContract JSON ABIが出力された。

CSVを使う時はVSCodeにRainbow CSVを入れるのが楽

Excelさんは文字コードとかでいまいち使いにくいので、テキストエディタでやってみようと思いました。
そこで普段よく使っているVSCodeにRainbow CSVという拡張機能を入れたら楽になりました。
データの抽出とかにはSQLライクなRBQLというものが使えるのがいいです。 github.com このRBQLを使うコンソールだと表示も綺麗にテーブルで表示してくれるし、行番号でもカラム番号でも表示を制御できるしかなりいいです。