2016/09/20

直接把 html table 轉成可以 search , sort , 翻頁的表格


一個很好用的 Jquery 套件,可以直接把 html table 轉成可以 search , sort , 翻頁的表格,
不用自己寫太多的前端網頁工作。

DataTable  https://www.datatables.net 

Example:
https://www.datatables.net/examples/basic_init/zero_configuration.html


刪減多餘 code 後的簡單範例:
https://mtchang.github.io/test/datatables_example.html

2016/09/19

CentOS7 Linux 安裝給 pokemon bot 使用的 proxy server

CentOS7 Linux 安裝給 pokemon 使用的 proxy server 

Porxy 服務早期是因為網路頻寬小,通常在區網內把重複的流量用 proxy 來取代。
現在則變成一種可以欺騙 web server 客戶端來源 IP 的一個小技巧,有人用於當 bot 爬網站,有人用於分散流量抓迷片。而今天,我把它用來服務 pokemon bot client ,因為一個 bot 抓太慢拉!!! XDXD

* 安裝及設定 Linux 的 Proxy 服務

# 安裝 squid
yum install squid -y

# 編輯設定檔 /etc/squid/squid.conf

nano /etc/squid/squid.conf
# 在這段之後
#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#
# 放入下面三行規格, ip 請自行更動
acl mynet src 111.32.141.0/24
acl mynet src 111.32.141.0/24
http_access allow mynet

# 啟動
systemctl restart squid 

# 開機預設啟動
systemctl enable squid 

# 確定 port 3128 是否工作
netstat -antlp | grep squid
tcp6       0      0 :::3128        :::*         LISTEN      29062/(squid-1)  

* 設定 pokemon bot , 這裡是以 Ar1i 開發的 PokemonGo-Bot 來當範例。
https://github.com/Ar1i/PokemonGo-Bot/tree/master/Builds-Only 
Ar1i 幾乎每天都在發新的版本,也修正很多 bug ,目前用過感覺最好的 bot 。


Proxy 設定



可以單機開四個 BOT



作者不斷修改更新版本,目前可以線上直接做很多手機的工作了。





PostgreSQL 使用的 timestamp 變更 timezone 很簡單



PostgreSQL 使用的 timestamp 變更顯示的 timezone 很簡單

只要把 select 欄位後方加上  AT TIME ZONE 'EST'  就可以
這裡的  'EST' 指的是美東時間,縮寫可以參考官方說明。
https://www.postgresql.org/docs/8.1/static/datetime-keywords.html 

範例SQL:
SELECT id, transaction_time,to_char((transaction_time AT TIME ZONE 'CCT')  , 'YYYY-MM-DD  HH24:MI:SS' )  as cct_transaction_time,
 to_char((transaction_time AT TIME ZONE 'EST')  , 'YYYY-MM-DD  HH24:MI:SS' )  as est_transaction_time 
 FROM root_memberdepositpassbook WHERE member_id = '45'  ORDER BY est_transaction_time DESC LIMIT 10;


https://www.postgresql.org/docs/9.5/static/functions-formatting.html 
關於欄位的輸出格式官方網站也有說明,可以讓你以你想的方式輸出。直接再 SQL 敘述指定就可以。








-- 北京時間
SELECT enrollmentdate, to_char((enrollmentdate AT TIME ZONE 'posix/Etc/GMT-8'),'YYYY-MM-DD HH24:MI:SS') as enrollmentdate_tz FROM root_member WHERE id = '45';
-- 美東時間
SELECT enrollmentdate, to_char((enrollmentdate AT TIME ZONE 'posix/Etc/GMT+5'),'YYYY-MM-DD HH24:MI:SS') as enrollmentdate_tz FROM root_member WHERE id = '45';
-- 東京時間
SELECT enrollmentdate, to_char((enrollmentdate AT TIME ZONE 'posix/Etc/GMT-9'),'YYYY-MM-DD HH24:MI:SS') as enrollmentdate_tz FROM root_member WHERE id = '45';
-- 列出目前系統的時區列表 ,指列出標準 postfix 的資訊。
select * from pg_timezone_names where name like '%posix/Etc/GMT%'

在 time with timezone 格式中,如果這樣表示時區 +08 的紀錄
2016-07-23 04:24:33.503622+08
* 如果要分別生成屬於美東時間 UTC-05 
* 以及中原標準時間 UTC +08 
* 東京時間 UTC +09
那使用的 timezone addrev 對照的欄位,帶入前面的 參數。
* 中原標準時間 UTC +08 對應  posix/Etc/GMT-8
* 美東時間 UTC-05 對應 posix/Etc/GMT+5
* 東京時間 UTC +09 對應 posix/Etc/GMT-9

則取出後的時間,就是當地的時間了。