最近在製作產品 landing page 時,同事發現對岸同事給的資料裡,複製出來貼到網頁上還是會看到特殊符號 L SEP 的字符。這是因為大家的文字編輯不同,再加上整理資料時都採用複製貼上,因此把這換行符號 unicode U+2028 字符貼到網頁或對應的語言檔(或是 HTML 寫 
 )
解法:看看編輯器是否能取代了
VIM 解法:搜尋時,輸入 \%u2028 就能找到,接著再靠 :%s/\%u2028//g 就取代完畢了
2019年9月18日 星期三
2019年1月25日 星期五
Google Analytics 使用筆記 - URI GROUPING

這半年除了狂用 GA API 自製 Dashboard 外,偶爾也要強迫自已直接用 GA Web console 做事。在研究資料過濾/整頓時,發現 GA 的 資料檢視 已經做得很完美了,有個非常貼心的小功能稱作 篩選器 ,裏頭新增規則時可以做到 URI grouping 效果!
也就是,有些網址會帶很多參數,如:
/service?country=US
/service?country=TW
/service?country=JP&lang=
可以透過篩選器把他們都整合成一則:/service
如此,在觀看即時數據時,就可以一眼看出哪個服務最多人使用了!
使用方式:
資料檢視 -> 挑選/新建一個項目 -> 篩選器 -> 新增篩選器 -> 篩選器類型 選擇 自訂 -> 搜尋與取代
設定完後,下方還有 "驗證這個篩選器" ,很貼心
接著就能靠正規表達式子取代掉,達成 URI Grouping 效果。後續也可以透過這個篩選器,把不要看的流量去掉,讓人可以專注在該重視的項目上。
標籤:
filter,
GA,
google analysis,
regular express,
replace,
uri
2017年6月15日 星期四
透過 Nginx proxy_pass 架構,進行 Service migration
有一個舊網站已活了數年,改造的方向不外乎提升 SEO、移除不需要的檔案、增加系統安全、架構拆分,或是基本的 Web Framework 的抽換使用等等。對於一個 IoT 產業來說,包袱多多,像是 device 不見得會更新到新版,更別說會跟隨 HTTP 301/302 去取得新資源,甚至新網站的開發還沒辦法一步到位全部切換,只好透過 Nginx proxy_pass 架構去處理相容並扛流量了。
在此使用 upstream 管理舊機器們,並且添加新的 log format 多紀錄 $upstream_addr 資訊以便後續維護:
後續,都是在 nginx server {} 定義範圍下。
更改 log 記錄格式:
預期 http client 能處理 HTTP 301/302 的服務位置,給予更佳的 SEO URL:
對於不能用 HTTP 301/302 的,則改用 proxy_pass 機制:
對於,有些文件很清楚要更改內文關鍵字的,可以善用 ngx_http_sub_module:
也可以順順換成 CDN 架構囉。
在此使用 upstream 管理舊機器們,並且添加新的 log format 多紀錄 $upstream_addr 資訊以便後續維護:
log_format add_proxy_pass '$remote_addr - $remote_user [$time_local] [=$upstream_addr=] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
resolver 8.8.8.8;
upstream oldserver {
hostname1;
hostname2;
hostname3;
}
後續,都是在 nginx server {} 定義範圍下。
更改 log 記錄格式:
access_log /var/log/nginx/access.log add_proxy_pass;
預期 http client 能處理 HTTP 301/302 的服務位置,給予更佳的 SEO URL:
location ~ old_page\.php$ {
return 301 $scheme://$host/new/page/;
}
對於不能用 HTTP 301/302 的,則改用 proxy_pass 機制:
location ~ ^/old/resource {
proxy_pass http://oldserver$uri;
}
對於,有些文件很清楚要更改內文關鍵字的,可以善用 ngx_http_sub_module:
location /old/resource/file\.json {
proxy_pass http://oldserver$uri;
sub_filter_types *;
sub_filter_once off;
sub_filter '//old.hostname/' '//cdn.hostname/';
}
也可以順順換成 CDN 架構囉。
2014年7月7日 星期一
[Linux] 使用 PCRE 進行字串取代 (C++/CPP/Regular Express/Replace) @ Ubuntu 14.04
安裝:
程式碼:
結果:
$ sudo apt-get install libpcre3-dev
程式碼:
#include <iostream>
#include <string>
#include <pcrecpp.h>
int main() {
std::string s = "Hello 123-234-456 World";
pcrecpp::RE("[0-9]+").GlobalReplace("", &s);
std::cout << "Result: " << s <<"\n";
return 0;
}
結果:
$ g++ -g t.cpp -lpcrecpp && ./a.out
Result: Hello -- World
訂閱:
文章 (Atom)