PHP 的性能猛獸 - Swoole

前言 PHP 發展至今已經 20 餘年,現今許多網站有相當高的比例都是以 PHP 所建構而成,然而一直以來 PHP 為人所詬病的就是他的效能問題。尤其是現今許多的開發框架雖然強大優雅,但同時也因為框架的複雜度讓 PHP 的效能更加倍放大來檢視,甚至成為許多人不選擇使用框架開發的原因。 雖然在新版的 PHP 7 中比起以往效能上有重大的突破,但在大多數人眼中 PHP 似乎始終都不是以效能為考量時的主要首選開發語言。但是接下來要介紹的 Swoole 可能會讓你重新定義 »

在Laravel/Lumen中快速整合Invisible reCPATCHA

前言 在上一篇的文章中,我們提到了今年Google宣佈推出最新版的機器人識別技術-Invisible reCPATCHA,而在這片文章中將教你如何快速的在你的Laravel專案中應用這項技術。 前端驗證指南 根據Google官方的文件指南看來,其實Invisible reCPATCHA的背後驗證的技術與前一代的no captcha應該不會相差太多,使用與前一代的API相同的引入位置: https://www.google.com/recaptcha/api.js,但既然Invisible reCPATCHA是完全隱形的,那該如何觸發進行驗證動作的時機呢? 其實很簡單,API只需要和你的submit button的送出事件綁定在一起,API即可在你正式送出表單資料前與Google的驗證伺服器完成驗證,以下為Google官方文件所提供的前端範例: »

深入淺出capthca驗證

傳統Capthca的演進 隨著十年前Web2.0的世界越來越發達,舉凡論壇或向留言板這樣的服務開始盛行,隨之而來的造成網路爬蟲與機器人也不斷進步,網路上開始大量出現藉由在各大論壇或留言版留垃圾廣告文的機器人興起。因此為了防堵機器人模擬人類的行為進行註冊或留言,開始出現了圖形辨識碼的技術,這項技術假使只有人類能辨別出圖形中的文字,像下面這些都是圖形驗證碼的範例: reCAPTCHA在2009年被Google收購,然後推出了在第一代的recpathca中提供了以圖形文字識別為基礎的API,供網站介接使用,而不需要耗費自己機器上的運算資源來產生圖形驗證碼的圖片,以下為架構流程圖: 但同時也因為電腦的運算能力與圖形文字識別(OCR)的不斷進步,你可以看到這些圖形加入了大量的變形、扭曲、雜訊、模糊化來使圖形驗證碼變得更加難以識別,但是這不只對機器難以識別,同時也對人類的辨讀上造成極大的阻礙。而且近年來隨著機器學習與圖形文字識別(OCR) »

使用Hashids取代increment ID

一直以來該使用increment ID或uuid當作是資料庫主鍵一直是兩派爭論不休的議題。 increment ID的優點相當的顯而易見,使用上簡易方便並具有佔用空間小及順序性等優點,個人覺得比較容易注意到的缺點大概就是id容易被外人進行猜測,雖然說這個部分應該是系統開發者應注意的事,但總覺得increment ID這種顯示方式醜醜的(或應該說太漂亮?) 此外increment ID還有一個缺點就是當你有資料轉移或合併的需求時,increment ID會讓你很容易發生id重複的問題。 反觀uuid他最大的特點就是你光從id上來看無法看出任何資訊(例如:順序),他就長得像這樣: 05177f3c-bdf7-4b96-927d-f6f636175a27,通常他是128bit長的數字,並且用16進制表示。缺點是在很多情形下作為主鍵建立索引查詢效率低。 因此在我最近的一個專案中,我嘗試使用Hashids當作是我的替代方案,我資料表的主鍵依然是使用increment ID, »

從Gandi將DNS轉移到Cloudflare

Gandi Gandi是一間來自於法國的網域名稱註冊商,於2015年的時候推出繁體中文的介面,在台灣這一兩年來廣告打滿兇的,可以很常在大大小小的技術型聚會提供贊助還有優惠碼。 Gandi可能現階段對台灣人而言還很陌生,不是大多數台灣人要註冊網域時的首選,但他是ICANN最早認可的域名註冊商之一,在法國算得上是數一數二大的域名註冊商。 這次會選用Gandi是因為看上他免費的隱藏域名資訊的服務,這在很多其他域名註冊商是要收費的服務,使用了隱藏域名資訊後,你的域名在whois上看起來會像這樣: 除了姓名之外,大部分的資訊都是Gandi當作代理幫你留下資料,好處是可以避免像電話、email這種個資那麼容易就攤在陽光底下。 但Gandi在操作上就不是那麼友善,例如:你的帳號只能使用它給你的代號XX12345-GANDI,但最令人受不了的是他設定DNS紀錄的介面操作非常繁瑣,而且DNS同步時間會讓你等到天荒地老! 索性就直接將DNS交由Cloudflare來代管。 Cloudflare Cloudflare最為人所知的服務就是免費無限流量的CDN服務,但除了CDN服務外, »