Profile cover photo
Profile photo
Brandon Chen
26 followers
26 followers
About
Posts

Post has attachment
Add a comment...

Post has shared content
Google mobile search is getting faster - to be exact, 200-400 milliseconds faster! We are gradually rolling out this improvement to all browsers that support the <a ping> attribute (currently, mobile Chrome and Safari).

What's the benefit? Whenever the user clicks on a result, typically they are first sent to a Google URL redirector and then to the target site. With <a ping>, the click is tracked using an asynchronous call, meaning that the user sees one less redirect and a faster overall experience!
Photo
Add a comment...

Post has shared content
這一篇有 "三千個字", 要有心理準備...

100 個人的無線網路要怎樣來作才會順暢, 不過正確的講, 應該是說 100 個 Wireless clients 的無線網路要怎樣作才會順暢, 這邊有幾個條件要確定, 第一個是這 100 個人需不需要在一個區網裡面可以直接互相傳輸檔案? 第二個, 這些 Wireless Clients 只有 2.4GHz 還是也有 5GHz 的裝置, 我這邊講的是通則, 不管是 thin/fat AP 基本上都會遇到一樣的問題, 當然有錢有固定場地的話, thin AP/Controller 的 Wireless switch 架構很棒, 但是台灣的 SI 沒有一家願意接你幾萬塊要派一堆工程師調設備, 還不一定在那活動時間內作的好的案子啦, 光 AP 的成本, 設備掉了就不划算了, 所以我都還是以分散式的方式來作, 問題會比較單純一點...

如果第一個問題是需要在同一個區網內可以直接傳輸檔案的話, 那就很難順暢, 問你要確認這個 SSID 裡面沒有人亂搞, 而且如果不只一個人亂搞, 這個 SSID 很快就癱瘓了, 如果不需要在同一個區網可以直接傳輸檔案的話, 無線網路可以用 1/6/11 三個頻道, 分別設定為 192.168.100-102.x/24, 三個不同的 SSIDs 跟 subnets 可以保證這三個 SSIDs 各自的穩定度跟獨立性, 這樣的設計只要三個 1K 有找的消費型 AP 就可以了, 對外會占用三個 Public IP, 多占用兩個 Public IP 的好處, 可以避免因為單一 IP 太多連線導致服務阻斷掉這個 IP 的問題, 而且當一個 SSID 掛掉的時候, 你還有兩個 SSID 可以連接,

第二個問題是如果你只有 2.4GHz 的裝置可以選擇, 基本上我會以最大乘載量的方式作評估, 所以就是用三個 20MHz 的頻道跟三台 AP 作三個 SSID 來作服務, 如果還有 5GHz 的設備的話, 可以用 2.4GHZ 跟 5GHz 共用一個 SSID, 透過 AP 帶支援 5GHz 的設備到 5GHz 的頻道去, 或者用 5GHz 獨立 SSID 的方式來連接, 一般來說, 5GHZ 獨立 SSID 的連線效果比較好, 因為 2.4GHz 帶到 5GHz 的這個動作不見得可以正常動作, JSDC / PYCON 這一次我就有跟人文館無線網路的設定人員討論 -5 結尾的 SSID 看得的到 5GHz 的 Wireless clients 優先可以連接 5GHz SSID 的可行性, 5GHz 的頻道夠多, 可以作三個 Dual Channel 沒有問題, 不過 Apple Airport Extreme 台灣只給 14x 以上的四個頻道可以用, 所以變得很難用, 

一個頻道基本上 10 個人使用是最剛好沒錯, 10 台 10 個頻道的問題是 2.4 GHz 不重疊的頻道只有 3 個, 你沒有 10 個頻道可以用, 要超過三個 2.4GHz AP, 真的就是要調頻道跟看風水, 我的要求是一個地點要有兩個頻道覆蓋, 訊號都有 -50db 以上才行, 所以高密度的 Wireless clients 的狀況下我們作的事情都是把 AP 的訊號盡可能調弱, 這樣才能增加 AP 部屬的密度, 

超過 10 個人的狀況, 就希望這些人不要一下都傳大量資料, 或者看內容很豐富的網頁等等, 其實我也有在 COSCUP 2010 看過一台 FON 有 50 Wireless clients, 但是那間會議室狀況也是還好, 沒有很嚴重的抱怨, 所以你說無線網路得順暢與否, 使用者的習慣大概決定了六成以上的狀況吧, WDS 基本上不要用, 除了單一頻道要浪費一半的頻寬在傳輸 AP 之間的資料外, 延遲時間也會變得很長, 唯一可行就是使用範圍很大, 但是 Wireless clients 很少, 又要保障訊號品質的狀況下, WDS 才有發揮的空間,

另外一個問題是無線網路有沒有加密, 如果有加密的話, 問題會變複雜, 因為 OS 會去紀錄你加密連線的 ESSID/BSSID, 如果你的 BSSID 變動的話會被 OS 拒絕這個連線, 要的話你就是要設定漫遊, 不然就是你的 ESSID 跟 BSSID 必須要是一對一的, ESSID/BSSID 一對一的設定問題最少, 無線網路不穩定的時候也最好排錯, 但是使用者比較不方便, 如果要設定漫遊的話, 人多的時候狀況就很多, 因為你不知道下一個接你無線網路連線的 AP 的狀況是怎樣,

如果無線網路是沒有加密的狀況下, 單一 ESSID 多 BSSID 的狀況是可行的, 但是你看不到目前連接的 BSSID 是那一個, 所以在你連接想要連接的 ESSID 之前, 你必須要先確定你的 ESSID 的訊號越強越好, 所以這個時候要先重新掃描你的無線網路列表, 然後才連接你要連接的 ESSID, 因為 OS 預設的行為是目前已知列表中 ESSID 當中訊號最好的 BSSID, 

中研院人文館無線網路 HITCON 2012 被打垮過, 那個時候的阿魯巴 thin AP 大概是 2x 個, 所以承載量在 400-500 個 Wireless clients, 因為比較周邊的 AP 要負載的 Wireless clients 一定比較低, 另外一個原因是多 SSID 的 VLAN 切割沒有實作完成, 所以無線網路的封包就被廣播封包沖掉了, 這個問題在 COSCUP 2012 被解決, 同樣的 AP 系統在 COSCUP 2012 的問題就少很多, HICON 2012 單一 AP 最高乘載有超過 50 Wireless clients 的狀況過, 那個 AP 基本上後來就是自動 reboot 了, 因為 Watchdog 偵測到逾時, HITCON 因為網路實在太髒了, 不切 VLAN 的狀況下, HITCON 2011 還是 2012 有遇到連 Root switch 都被 ARP Spoofing 到只能斷電重開機的狀況, 然後全場就斷網路, 因為不重開機的狀況下網路也是不通的 XD

WEBCONF 2013 的時候已經確認阿魯巴 thin AP 已經擴充到 3X 台, 所以 wireless client 承載量可以到 600-700 個沒有問題, 但是因為 OSDC 2013 的時候因為事先的溝通沒作好, 我才意外發現中研院人文館的無線網路 SSID 設定只能以會議室為基礎的 AP 群來設定, 所以到 JSDC 跟 PYCON 時候, SSID 只剩下 R0/1/2 三個, 因為多了也沒有用,

阿魯巴 thin AP 廠商工程師是說承載量是 20 wireless clients, 超過這個數量都沒有辦法保證工作的效果, 

如果就是要作 NAT 了, 你的 IP 範圍就要大到發不完, 避免你的 DHCP Clients 問 IP 的問題, 這個問題發生在 HITCON 2012 跟 COSCUP 2012, HITCON 2012 的問題是 DHCP 分配 IP 的封包被其他廣播封包沖掉了, COSCUP 2012 的問題是 VLAN 切了, 但是一個 Class C 太小, 我從來沒有想過一個 Class C 的 IP 居然租約時間要設定 600 秒, 所以接下來都是設定 /16, 一次發四個 Class C 的 IP 了, 基本人數都沒有超過 1000 人, 不會有 IP 不夠用的問題, 再來就是 Gateway 掛掉怎麼辦, 我現在的解法是一個 VLAN 裡面作兩個 Gateway, 發兩段四個 Class C 的 IP, 範圍不重疊, 當使用者發現沒有辦法連到 Gateway 的時候, 可以先斷線在重新連線, 沒有意外的話基本上都會拿到另外一個 Gateway 發放的 IP, 這兩個 Gateway 必須要放在兩台實體的主機上, 才有備援容錯的效果, OSDC 2013 的時候確實有一台主機的硬碟寫入的時候有錯誤訊息, 還好還在保固內, JSDC 的時候去拿回來, 場佈晚上把 VM 跟 VLAN 弄好, 第一天接上網路線一切運作正常, 只能說我運氣還不錯...

以上都是經驗談, 我不能保證我的觀念都是正確的, 因為我的預算能作的事情就這麼多, 有不同的預算的話很多事情可以有不同的作法, 歡迎大家來討論, 如果有活動需要支援的話, 也請提早告訴我, 我帶線路組的人作服務沒有分大小場, 都是全力以赴在作服務, 只是如果場面很大的話, 需要提早講才能評估設備, 有錯字的話請大家幫我挑錯一下, 謝謝大家願意花時間看我的經驗分享, 雖然還是有東西沒有講出來 XDDD 不過這些目前應該夠了

https://www.facebook.com/evenwu/posts/10151416283985718 我在這個 FB 訊息串被 tag 好幾次, 結果花了一個小時寫這篇的內容@@
Add a comment...

Post has shared content
Go Packaging:  Taking a step back to learn more about how people/companies are approaching package management in Go, and what pain points are being experienced. Please chime in by editing/amending this document.
Add a comment...

Post has shared content
Optimizing the Critical Rendering Path... nuts and bolts of delivering instant mobile websites! 

tl;dr: count those roundtrips, inline your critical CSS, defer the rest.
Add a comment...

Post has shared content
Add a comment...

Post has shared content
What do you do out of 7 billion people? Very interesting information! 
#knowledgegraph  
Photo
Add a comment...

Post has attachment
Add a comment...

Post has shared content
After about one year of development, Go-MySQL-Driver has finally hit version 1.0.

Go-MySQL-Driver is optimized for high performance [1] and covers nearly all features possible with the database/sql package in Go 1.0.3+.

To make use of the full potential available with Go 1.1, we will continue development in Go 1.1. Therefore version 1.0 will also be the last release which keeps compatibility with Go 1.0. However, we will continue to maintain the v1.0 branch with bug fixes.

We will release version 1.1 soon, which will be compatible to Go 1.1+ only. We will take the chance to clear the code base (e.g. remove unreachable return statements), but you can also look forward to new features: version 1.1 will include the long postponed support for compression and encryption.

Big thanks to all the contributors and to all those who gave the driver a try.

More details: https://github.com/go-sql-driver/mysql

- Julien

___

1: Go-MySQL-Driver has recently proudly backed the surprising Go results in http://www.techempower.com/blog/2013/05/02/frameworks-round-4/
Add a comment...

Post has attachment
Wait while more posts are being loaded