Flowto

มาตรฐาน

Flowto เป็น app ที่คิดจะทำขึ้น เพื่อติดตาม สถานการณ์ต่าง ๆ ผ่านทางการถ่ายภาพ ซึ่งใช้ประโยชน์ตรง รูปภาพที่ถ่ายโดยอุปกรณ์ smart phone มี Location ด้วย ดังนั้นก็จะเหมือนกับ การเล่าเรื่อง แบบ share โดย  user โดยจะได้ ข้อมูล 4 อย่าง คือ

  • รูปถ่าย
  • Location
  • caption (post สถานะ)
  • เวลา ที่ share

ตัว app ที่คิดไว้ ก็จะนำเสนอ การ share รูปภาพผ่าน ระบบ  แผนที่

16114287_10208250831611689_7788688475858433662_n

รูปภาพที่โพสไว้เมื่อ 17 มกราคม 2560 ใน face ส่วนตัว

เอาไว้ทำเสร็จแล้ว จะนำไปใช้หวังผล 2 อย่างคือ 1) ติดตามงานนโยบาย ของกระทรวงฯ 2) ใช้ในศูนย์นำ้อัจฉริยะ ของกรม…

ใช้ Trello กัน

มาตรฐาน

Trello เป็น โปรแกรมสำหรับ การจัดการประมาณ Task Management ในงานทั้งส่วนตัวและองค์กรก็ได้ แต่มันดีตรงเป็น social กลาย ๆ นี่ล่ะ ซึ่งทำให้เข้าถึงได้ง่าย

เมื่อก่อนเคยคิดงานประเภท Social + ติดตามงานได้ในแต่ละประเด็นของ Work flow  กะว่าจะเอา humhub ที่เป็น opensource มาเขียนต่อแล้วเชียว แต่ไม่ชอบ Yii เลยไม่ลงมือ 555 แต่ Trello  ตอบโจทย์ได้โดยไม่ต้องเขียนใหม่ ที่สำคัญ free สำหรับทุกคน ดังนั้น มันตอบไม่ใช่แค่องค์กรเดียวแต่ ใช้ระบบ social ครอบมันได้ทุกองค์กร

Trello สามารถใช้ gmail  login ได้เลยถ้ามี Account  ของ  Google และส่วนใหญ่ก็ใช้ gmail ทำงานกันอยู่แล้วนะ

ลักษณะของ Trello ไม่เหมือนกับTask Management โดยทั่วไป  โดยสร้างประเด็น ผ่าน Board –> List –> Card  เจ้า Card นี้คือประเด็นที่สร้างขึ้นมา สามารถ ฝาก file ไว้ได้ (ชอบมาก กะว่ามีประชุมอะไรแล้วมี file ต้องเก็บ up โลด) เติม comment คุยกันใน team ได้อีก นั่นทำให้คิดว่า หากมีการทำงานลักษณะคณะทำงานต่าง ๆ ก็มาสร้างทีมไว้ใน Trello ดีกว่าไปคุยใน กลุ่ม line นะ เพราะในกลุ่ม line คุยไปเรื่อย ๆ ไม่สามารถแยกประเด็น แต่ Trello คุยกันตาม Card  ซึ่งระบุประเด็นที่เปิดไว้ และสามารถ Subscribe Card ได้เหมือน social อื่น ๆ เช่น การกด like ของ facebook

มีแบบ Web App Android IOS และ โปรแกรมใน  OSX และ windows  ใช้ได้ทุก platform

สรุปว่า Trello ดีงาม ไปใช้กัน

https://trello.com

Time series data base for Water management data

มาตรฐาน

grafana

Sensor-arm-over-pier-1024x768.jpg

*รูปตัวอย่าง

ช่วงนี้ ทำระบบ เกี่ยวกับ GIS อยู่แต่ อยากรู้ว่าใช้ทรัพยากรของ server ในแต่ละช่วงเวลาเป็นอย่างไรบ้างเนื่องจากมันอืด ๆ เลยหาความรู้เพิ่มเติม มีที่หนี่งแนะนำ เป็น cAdvisor+influxDB+Grafana ลองลงดูแบบ docker ก่อนหน้านี้ลง Racher สรุปว่าลงไม่ได้เนื่องจาก docker ตัวเก่า ต้องแก้ด้วย การ update docker-machine(เรื่องเยอะ)  เลยไปใช้ cAdvisor เพื่อ monitor server สรุปว่าใช้ได้ดีเลย แล้วก็ ทำให้รู้ว่าใช้ ram ไปอยู่ในโซนที่จะเต็มแล้ว สั่งเพิ่ม ram ด่วน ๆ

สิ่งที่ตามมาคือ ได้ความรู้ในสิ่งที่เคยสงสัยไว้เพิ่มเติม คือ เรื่อง time series

ปกติก็รู้ว่าถ้าใช้ database แบบเดิม ๆ คือพวก mysql กับ time series ที่ต้องเก็บสถานะในหลาย ๆ เรื่องนี่ มันจะกินพื้นที่มากมาย แถม query พวกเกี่ยวกับเวลาก็ คำนวณนานพอได้เลย database ทำงานหนักน่าดู ความรู้แบบที่เคยศึกษาเพิ่มเติมคือควรใช้ Cassandra เป็น database สำหรับ time series แต่วันนี้รู้มาเพิ่มอีก คือ influxDB และพ่วงด้วย grafana ตัวที่ทำให้การ monitor ง่ายขึ้นเยอะเลย

แน่นอนว่า Water management การบริหารจัดการน้ำ หรือข้อมูลด้านน้ำนี่มีแต่ข้อมูล time series เยอะแยะไปหมด ดังนั้น การนำ influxDB+Grafana มาช่วยน่าจะเป็นคำตอบที่ดีมาก ๆโดยเฉพาะการ Monitor สำหรับการติดตามสภาพน้ำต่าง ๆ อนาคตอุปกรณ์ที่ต้องติดตามสภาพน้ำต้องเป็นแบบ อุปกรณ์ Iot แน่นอน ข้อมูลตรึม เตรียมไว้ก่อนย่อมดีกว่าเป็นไหน ๆ influxDB รองรับการเขียนเป็นล้านได้ใน 1 วิ mysql ไม่ไหวแน่นอน

โปรเจคชิ้นต่อไปคือการติดตามสภาพน้ำนี่ล่ะจะไปทำกับ สำนักงานชลประทานที่ 11

สำหรับ database ตัวอื่น ๆ ที่เหมาะกับ time series มีดังนี้

credit–>http://stackoverflow.com/questions/8816429/is-there-a-powerful-database-system-for-time-series-data

จะเห็นว่า influxDB ไม่ต้องการ dependency ใด ๆ เลยเหมาะมากไปดูภาษาการ query ก็ไม่ยากง่ายดี ส่วน grafana เป็น tool สำหรับเป็น dashboard อยู่แล้ว อ่าน datasource ได้หลายรูปแบบ ตามนี้เลย http://grafana.org

เก็บไว้กันลืม

มาตรฐาน

โค๊ดสำหรับ intersec พวก gis

พอดีไปปรับแก้นิดนึงให้ใช้ภาษาไทยได้
credit–>http://gis.stackexchange.com/questions/119374/intersect-shapefiles-using-shapely

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
from osgeo import ogr
os.environ['SHAPE_ENCODING'] = "utf-8"
ogr.UseExceptions()
ogr_ds = ogr.Open('./', True)  # Windows: r'C:\path\to\data'

SQL = """\
    SELECT ST_Intersection(A.geometry, B.geometry) AS geometry, A.*, B.*
    FROM tb A, code B
    WHERE ST_Intersects(A.geometry, B.geometry);
"""

ogr_ds.ExecuteSQL('PRAGMA encoding="UTF-8";', dialect='SQLITE')
#layer = ogr_ds.ExecuteSQL(SQL, dialect='SQLITE')
#ogr_ds.setCPLConfigOption("SHAPE_ENCODING", "UTF-8")
layer = ogr_ds.ExecuteSQL(SQL,dialect='SQLITE')
# copy result back to datasource as a new shapefile
layer2 = ogr_ds.CopyLayer(layer, 'newone')
# save, close
layer = layer2 = ogr_ds = None

อันนี้ก็อีก Code นึง สำหรับ django โดยเฉพาะ

from django.db import connections
cursor = connections['my_db_alias'].cursor()
cursor.execute("SELECT id, parent_id FROM test LIMIT 2");
SQL='''
    SELECT basin.*, province_border.*
    FROM basin, province_border
    WHERE ST_Intersects(basin.the_geom, province_border.the_geom);
'''
cursor.fetchall()
cursor.fetchone()

feathersjs.com

มาตรฐาน

feathersjs.com

ตอนแรกพัฒนา App สำหรับ firebase ก็ยังนึกว่าถ้าทำให้องค์กร มันก็ไม่ฟรีนะ กรณีถ้ามี user เกิน 200 แล้วมองว่ากรมชลก็มีแนวทางสร้าง cloud ของตนเอง ดังนั้น เลยกะจะไปหา firebase แบบฟรีๆซักหน่อย ร่วมกับที่ว่า realtime database ของ firebase นี่ก็ realtime เฉพาะ event ที่เกิดจาก database จริง ๆ จะเอา socket-io มาร่วมเขียนอยู่แล้วเชียว

firebase แบบฟรี ๆ กรณีใช้data กะ user เยอะสรุปว่าไม่มี แต่ไปเจอตัวนึงน่าจะมาแรงในอนาคต เป็น platform สาย nodejs นั่นคือ feathersjs.com ยังไม่ได้ลอง แต่เท่าที่อ่าน ๆ คือ มันประกอบด้วยหลายตัวที่น่าสนใจเช่น แน่นอน socket-io แล้วก็มี Authen ให้ มี database ที่ไปสร้างเอาเองนะ แต่รองรับ datasource ได้เพียบเลย เคยเขียน node ร่วมกับ knex เพื่อ connenct กับ database ได้หลายแบบ ตัวนี้เช่นกัน มันใช้ knex แถมนอกจาก knex แล้ว database สาย nosql มันก็เอากะเขาได้ด้วย เจ๋ง ที่สำคัญมันคือ realtime app เลย

http://feathersjs.com/

a

feathersjs.com นี่ประกอบร่างจาก component หลายตัวที่กระผมชอบมากหมายความว่า ไม่ต้องประกอบร่างเองแล้ว 555 สรุปว่าดีงาม เพราะทั้งหมดเอาไปไว้ใน cloud ขององค์กรได้เลย สะบายไม่ต้องไป server google แล้ว (กำลังนึกว่า ใครเสถียรกว่ากัน 555 ) ซึ่งตอบโจทย์เรื่องค่าใช้จ่าย เห็นมีการทำงานร่วมกับ angular ได้ด้วยแต่ manual ยังไม่เสร็จ งั้นต้องรอไปอีกสักนิด