oggataの日記 このページをアンテナに追加 RSSフィード Twitter

 

2017-10-12 Could not find a JavaScript runtime. このエントリーを含むブックマーク このエントリーのブックマークコメント

ubunturailsインストールして、

$ bundle exec rails serverした時に

/home/ubuntu/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/runtime.rb:85:in `rescue in block (2 levels) in require': There was an error while trying to load the gem 'uglifier'. (Bundler::GemRequireError)
Gem Load Error is: Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes.
Backtrace for gem load error is:

というエラー

やったこと

$ sudo apt-get install nodejs

Gemfilesに追加

gem 'libv8'
gem 'execjs'
gem 'therubyracer', :platforms => :ruby
$bundle install

次に

/home/ubuntu/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/natto-1.1.1/lib/natto/binding.rb:58:in `rescue in find_library': Please set MECAB_PATH to the full path to libmecab.so (LoadError)

のエラー

$ sudo apt-get install -y mecab mecab-ipadic-utf8 libmecab-dev

で解消した。

2017-09-22 mac + railsのとき起きるnokogiriのエラー このエントリーを含むブックマーク このエントリーのブックマークコメント

memo

[400] {"error":{"root_cause":[{"type":"parsing_exception","reason":"Unknown key for a START_OBJECT in [filter].","line":1,"col":142}],"type":"parsing_exception","reason":"Unknown key for a START_OBJECT in [filter].","line":1,"col":142},"status":400}

$xcode-select --install

Nokogiri 1.6.8 Install Fails on Mac OS X with xz installed from Homebrew

https://github.com/sparklemotion/nokogiri/issues/1483

Nokogiri 1.6.8 Install Fails on Mac OS X with xz installed from Homebrew · Issue #1483 · sparklemotion/nokogiri · GitHub

nokogiri - Nokogiri (鋸) is a Rubygem providing HTML, XML, SAX, and Reader parsers with XPath and CSS selector support.

2017-08-11 GethをVagrantのUbuntuにインストール このエントリーを含むブックマーク このエントリーのブックマークコメント

(参考)

https://github.com/ethereum/go-ethereum/wiki/Installation-Instructions-for-Ubuntu

http://loumo.jp/wp/archive/20150626000042/

#vagrantインストール

vagrant box add ubuntu14.04 https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box
vagrant init
vim Vagrantfile 
config.vm.box = "ubuntu14.04"
vagrant up

#ログイン

vagrant ssh  または外部の場合 ssh 192.168.0.1 -l ubuntu

#インストール

sudo apt-get install software-properties-common

(aptパッケージを探すためのユーティリティ)

sudo apt-get install apt-file
sudo apt-file update
sudo apt-file search add-apt-repository
sudo apt-get install software-properties-common

(イーサリアム用のパッケージを入れる)

sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt-get update

(ここでようやくイーサリアムをインストールできる)

sudo apt-get install ethereum

#ポート解放する

sudo ufw status
sudo ufw allow 8575 <-Gethで使う
sudo ufw allow 80 <-browser-solidityで使う
#許可ポート以外閉じる
sudo ufw default deny

#準備

sudo apt-get install vim
mkdir data_testnet
cd data_testnet
vim genesis.json  -> 設定する
{
"nonce": "0x0000000000000042",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x400",
"alloc": {},
"coinbase": "0x3333333333333333333333333333333333333333",
"timestamp": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "0x",
"gasLimit": "0x8000000",
"config": {}
}
#初期化
geth --datadir /home/ubuntu/data_testnet/ init /home/ubuntu/data_testnet/genesis.json
#ログイン
geth --networkid "10" --nodiscover --datadir "/home/ubuntu/data_testnet" console 2>> /home/ubuntu/data_testnet/geth_err.log
#ログイン2
geth --mine --minerthreads 2 --identity "sampleNode" --rpc --rpcport 8575 --rpcapi "web3,eth,net,personal" --rpccorsdomain "*" --rpcaddr "0.0.0.0" --datadir "/home/ubuntu/data_testnet" --unlock 0 --nodiscover --networkid 10 console 2>> /home/ubuntu/data_testnet/geth.log

#curlして見る。8575ポートが解放されていて、Gethが起動して入れば疎通できるはず。

curl -X POST http://192.168.0.1:8575/  --data '{"jsonrpc":"2.0","method":"web3_clientVersion","params":[],"id":1}'

#solcインストール

sudo apt-get install solc
solc --version
>Version: 0.4.14+commit.c2215d46.Linux.g++
which solc
>/usr/bin/solc

#browser-solidityを使えるようにする為にapacheを起動してコードを/var/www/html配下に設置する

sudo apt-get -y install apache2
sudo apt-get install git
sudo apt-get install unzip
sudo apachectl start

cd /var/www/html/
sudo wget https://github.com/ethereum/browser-solidity/archive/gh-pages.zip
sudo unzip gh-pages.zip

http://192.168.0.1/browser-solidity-gh-pages/

eth.accounts
personal.unlockAccount("0xd9155326452b5e90e81e1a878794b061a7c719ec", "hoge1")
personal.unlockAccount("0x5ad66cc65fa30eb8ef7b4ae4935a0dcb28bf4105", "hoge2")
eth.sendTransaction({from: "0xd9155326452b5e90e81e1a878794b061a7c719ec", to: "0x5ad66cc65fa30eb8ef7b4ae4935a0dcb28bf4105", value: web3.toWei(1, "ether")})
pragma solidity ^0.4.0;
contract sample {
    int num;
    function set_num(int n){
        num = n;
    }
    function get_num() returns(int) {
        return num;
    }
}

2016-12-06 Python3 + MeCabで parseToNodeでエラー このエントリーを含むブックマーク このエントリーのブックマークコメント

yield node.surface.lower()

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfe in position 0: invalid start byte

import MeCab
node = mecab.parseToNode(text)

を実行した時になぜか怒られる...。surfaceが読めてない?

(原因)

https://shogo82148.github.io/blog/2015/12/20/mecab-in-python3-final/

こちらの記事によると解析対象の文字列Pythonの管理下から外れGCされてしまっていて、

メモリ管理をMeCabに任せるように変更が必要とのこと。。

Python3 + MeCabで起こる。

import MeCab
mecab = MeCab.Tagger("-Ochasen")
mecab.parse('') #<---これを1行いれる
text = "犬と猫のどちらが好きですか?"
node = mecab.parseToNode(text)
while node:
    print (node.surface, node.feature)
    node = node.next

(memo)

ただし、

http://qiita.com/yukinoi/items/81a707c1317c97f5fdf9

によるとparseToNodeはだいぶ遅いとのこと。

2016-12-05 pandas + matplotlib このエントリーを含むブックマーク このエントリーのブックマークコメント

import numpy as np
import matplotlib as mpl
mpl.use('Agg')
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d
from matplotlib import cm
from numpy.random import randn

def prot_test():
    #新規windowを描画する
    fig = plt.figure()

    #subplotを準備
    ax1 = fig.add_subplot(2,2,1)
    ax2 = fig.add_subplot(2,2,2)

    #ヒストグラムの描画する
    ax1.hist(randn(100).cumsum(), bins=20, color='k', alpha=0.3)

    #散布図の描画
    ax2.scatter(np.arange(30), np.arange(30) + 3 * randn(100).cumsum())

    plt.show()
    plt.savefig("image.png")


if __name__ == '__main__':
    prot_test()

f:id:oggata:20161205171935p:image