PouchDB のサンプル

// —————————————————————
var text_manipulate = require(‘/var/www/data_base/common/node_common/text_manipulate’)
// —————————————————————
console.error (“*** 開始 ***”)

var PouchDB = require(‘pouchdb’);

var db = new PouchDB(‘db_cities’);

/*
db.info().then(function (info) {
console.log(info);
})
*/

var dict_aa = data_prepare_proc ()

for (var key in dict_aa)
{
const unit_aa = dict_aa[key]
var doc = {“_id”: key, “name”: unit_aa[‘name’],
“population”: unit_aa[‘population’],
“date_mod”: unit_aa[‘date_mod’]}
db.put (doc)
}

const array = [“t2021″,”t2022″,”t2023″,”t2024″,”t2025″,”t2026”]

for (var it in array)
{
const key = array[it]

db.get(key).then(function (doc) {
var str_out = doc._id + “\t” + doc.name + “\t” + doc.population
str_out += “\t” + doc.date_mod
console.log (str_out)
})
}

console.error (“*** 終了 ***”)

// —————————————————————
function data_prepare_proc ()
{
var dict_aa = new Object ()

dict_aa = text_manipulate.dict_append_proc (dict_aa,’t2021′,’長野’,82136,’1950-9-12′)
dict_aa = text_manipulate.dict_append_proc (dict_aa,’t2022′,’松本’,71928,’1950-3-15′)
dict_aa = text_manipulate.dict_append_proc (dict_aa,’t2023′,’上田’,63241,’1950-10-2′)
dict_aa = text_manipulate.dict_append_proc (dict_aa,’t2024′,’小諸’,38724,’1950-6-22′)
dict_aa = text_manipulate.dict_append_proc (dict_aa,’t2025′,’岡谷’,49357,’1950-8-14′)
dict_aa = text_manipulate.dict_append_proc (dict_aa,’t2026′,’塩尻’,67283,’1950-9-12′)
dict_aa = text_manipulate.dict_append_proc (dict_aa,’t2027′,’茅野’,36251,’1950-3-21′)
dict_aa = text_manipulate.dict_append_proc (dict_aa,’t2028′,’飯田’,54623,’1950-7-26′)
dict_aa = text_manipulate.dict_append_proc (dict_aa,’t2029′,’中野’,21847,’1950-10-2′)
dict_aa = text_manipulate.dict_append_proc (dict_aa,’t2030′,’諏訪’,48392,’1950-12-20′)
dict_aa = text_manipulate.dict_append_proc (dict_aa,’t2031′,’駒ヶ根’,51875,’1950-2-7′)
dict_aa = text_manipulate.dict_append_proc (dict_aa,’t2032′,’佐久’,69234,’1950-5-17′)
dict_aa = text_manipulate.dict_append_proc (dict_aa,’t2033′,’伊那’,31897,’1950-6-19′)
dict_aa = text_manipulate.dict_append_proc (dict_aa,’t2034′,’千曲’,52718,’1950-8-24′)

return dict_aa
}

// —————————————————————

SQLAlchemyでMariaDB を使う

#! /usr/bin/python
#-*- coding: utf-8 -*-
#
# sqlalchemy_mariadb.py
#
# Mar/09/2017
#
# ——————————————————————
from sqlalchemy import *
from sqlalchemy.orm import *
from sqlalchemy.ext.declarative import declarative_base
import sys
import datetime

# ——————————————————————
sys.stderr.write (“*** 開始 ***\n”)

metadata = MetaData()

engine = create_engine(‘mysql+mysqlconnector://scott:tiger@localhost/city’)
db_session = scoped_session(sessionmaker(autocommit=False,
autoflush=False,
bind=engine))
Base = declarative_base()
Base.query = db_session.query_property()

#テーブルクラス
class City (Base):
__tablename__ = ‘cities’
id = Column(‘id’, String (64), primary_key=True)
name = Column(‘name’, String(64))
population = Column(‘population’, Integer)
date_mod = Column(‘date_mod’, String(64))

def __init__(self, id, name, population, date_mod):
self.id = id
self.name = name
self.population = population
self.date_mod = date_mod

def __repr__(self):
return ‘City’

cur = db_session.query (City).all()

for unit in cur:
str_out = unit.id + “\t” + unit.name + “\t”
str_out += str (unit.population) + “\t” + unit.date_mod
print (str_out)
#
sys.stderr.write (“*** 終了 ***\n”)
# ——————————————————————

Raspbian にphp7.0 をインストール

参考にしたページ
https://www.symfony.fi/entry/install-php-7-on-raspbian-raspberry-pi

手順

/etc/apt/sources.list に追加
deb http://repozytorium.mati75.eu/raspbian jessie-backports main contrib non-free

# gpg –keyserver pgpkeys.mit.edu –recv-key CCD91D6111A06851
# gpg –armor –export CCD91D6111A06851 | apt-key add –

# apt install php7.0
# apt install php7.0-fpm
# apt install php7.0-mysql
# apt install php7.0-curl

express の使い方

http://expressjs.com/en/starter/generator.html

# npm install express-generator -g

$ express –view=pug myapp
$ cd myapp
$ npm install
$ DEBUG=myapp:* npm start

http://localhost:3000/

//express-sample/app.js
var express = require(‘express’)
var app = express()
app.use(express.static(‘public’));
//ルーティング設定
app.get(‘/’, function (req, res) {
res.send (‘こんにちは、皆さん!! 今日は、良い天気でした。’)
})

// POST method route
app.post(‘/’, function (req, res) {
res.send(‘POST request to the homepage’)
})

app.put(‘/user’, function (req, res) {
res.send(‘Got a PUT request at /user’)
})

app.delete(‘/user’, function (req, res) {
res.send(‘Got a DELETE request at /user’)
})

app.listen(3000)

$ curl -X POST http://localhost:3000/
$ curl -X DELETE http://localhost:3000/user
$ curl -X PUT http://localhost:3000/user

DynamoDB

参考になるページ

AWS再入門 Amazon DynamoDB 編

テーブルの作成

マネージメントコンソールから作成

aws configure

データの挿入
aws dynamodb put-item –table-name hello-dynamodb –item ‘{ “id”: {“N”: “1”}, “first_name”: {“S”: “Jun”}, “last_name”: { “S”: “Chiba”}, “Score”: {“N”: “50”}}’
aws dynamodb put-item –table-name hello-dynamodb –item ‘{ “id”: {“N”: “2”}, “first_name”: {“S”: “James”}, “last_name”: { “S”: “Smith”}, “Score”: {“N”: “50”}}’
aws dynamodb put-item –table-name hello-dynamodb –item ‘{ “id”: {“N”: “3”}, “first_name”: {“S”: “Robert”}, “last_name”: { “S”: “Johnson”}, “Score”: {“N”: “50”}}’
aws dynamodb put-item –table-name hello-dynamodb –item ‘{ “id”: {“N”: “4”}, “first_name”: {“S”: “David”}, “last_name”: { “S”: “Wilson”}, “Score”: {“N”: “50”}}’
aws dynamodb put-item –table-name hello-dynamodb –item ‘{ “id”: {“N”: “5”}, “first_name”: {“S”: “Richard”}, “last_name”: { “S”: “Moore”}, “Score”: {“N”: “50”}}’

データの抽出
aws dynamodb scan –table-name hello-dynamodb

nginx-pam

$ yaourt -Sb nginx-pam

==> gpg でソースファイルの署名を検証…
nginx-1.10.2.tar.gz … 失敗 (不明な公開鍵 520A9993A1C052F8)
==> エラー: PGP 鍵を検証できませんでした!
==> エラー: Makepkg は nginx-pam をビルドできませんでした。
==> nginx-pam のビルドを再開しますか ? [y/N]
==> —————————–

対策
$ gpg –keyserver pgp.mit.edu –recv-keys 0x251a28de2685aed4 0x520A9993A1C052F8

loading packages…
resolving dependencies…
looking for conflicting packages…
:: nginx-pam and nginx are in conflict. Remove nginx? [y/N]
error: unresolvable package conflicts detected
error: failed to prepare transaction (conflicting dependencies)
:: nginx-pam and nginx are in conflict
==> WARNING: Your packages are saved in /tmp/yaourt-tmp-uchida

d3.js 折れ線







Line Chart Feb/14/2017



折れ線サンプル


Feb/14/2017


// ———————————————————————–
// oresen02.js
// ———————————————————————–
d3.json (“data.json”, function(error, dataset) {

// 400×100のsvg領域を作る
const w = 400
const h = 100
var svg = d3.select(“#result”)
.append(“svg”)
.attr(“width”, w)
.attr(“height”, h);

// datasetを{x,y}の座標の配列に変換する。
// X座標は、領域全体を個数で割って全体を使えるようにする。
// 原点が左上なので、Y座標は最大値から引き算する
// それぞれ2ずらしているのは、0地点の場合に線が欠けるため。
var pathinfo = [];
var b_x = w / dataset.length;
for (var i=0; i

PostgREST

PostgREST は、PostgreSQL にアクセスする Web サーバー です。

バイナリーをダウンロードします。
$ unxz postgrest-0.4.0.0-ubuntu.tar.xz
$ tar xvf postgrest-0.4.0.0-ubuntu.tar

次の実行ファイルができます。
35973960 Jan 20 16:36 postgrest

$ ./postgrest –help
で、ヘルプが表示されます。

例にしたがって、Config ファイルを作成します。
そして、サーバーを起動します。
$ ./postgrest config.txt
Listening on port 3000
127.0.0.1 – – [03/Feb/2017:09:08:22 +0900] “GET / HTTP/1.1” 401 – “” “curl/7.52.1”

curl でアクセスします。
$ curl http://localhost:3000
{“hint”:null,”details”:null,”code”:”42501″,”message”:”permission denied to set role \”postgres\””}
設定に誤りがあるようです。

設定を変えて、サーバーを再起動
$ curl http://localhost:3000
{“swagger”:”2.0″,”info”:{“version”:”0.4.0.0″,”title”:”PostgREST API”,”description”:”This is a dynamic API generated by PostgREST”},”host”:”0.0.0.0:3000″,”basePath”:”/”,”schemes”:[“http”],”paths”:{“/”:{“get”:{“tags”:[“/”],”produces”:[“application/openapi+json”],”responses”:{“200”:{“description”:”OK”}}}}}}
うまく行っているようです。

Arch Linux で bind

参考にしたページ
http://rina.jpn.ph/~rance/linux/bind/lan_dns.html

起動
# systemctl start named
起動したかの確認
# systemctl status named

エラーが出て起動できないので、named.conf をチェック
# named-checkconf /etc/named.conf
/etc/named.conf:22: expected unquoted string near ‘”‘

forward first; と修正
# named-checkconf /etc/named.conf
# systemctl start named
# systemctl status named
Active: active (running)

起動したが、エラーが出ている。
named[2448]: network unreachable resolving ‘./NS/IN’: 2001:500:84::b#53