跳到主要內容

發表文章

目前顯示的是 2015的文章

[野人獻曝] 實作 Clef 的 2-factor 登入

Clef 是一套算是方便的簡單登入機制,宣稱只要三個步驟就能讓你簡單登入: 點擊支援網站的登入按鍵,此時會出現 Clef 的登入畫面(其實就是一個 GIF 條碼而已) 打開安裝在手機上的 Clef APP ,掃描該 GIF。 若是第一次造訪該網站可能會要求你填寫額外資料。這樣就完成登入作業了。 要在自家網站使用這個服務,得先去他們網站註冊,並開啟一個新 Application ,接著就是要改一下 Code 了。 以下是 PHP 使用 CI 所寫出的範例 Code(這裡只實作登入部份,登出部份之後再另寫一篇說明): 如果要玩玩看實際的操作流程,可以連到 這裡 看看。

[野人獻曝] 簡介 Orchestrate.io

Orchestrate.io 是一個把 NoSQL 和搜尋服務結合在一起的 DaaS(Database as a Service)。 對於想要用搜尋服務也想同時使用 NoSQL 服務,但是資源卻不夠多的人,他的免費方案讓你可以輕鬆使用,所以我非常推薦。 使用方法很簡單,初使用者可以直接看範例 Code,瞭解最基本的用法後就可以開始寫 Code 了。

[野人獻曝] 千萬不要在 MySQL 內有用到 auto_increment 的表下 INSERT ... ON DUPLICATE

原因很可怕,所以不要問! 最近開了一個有 auto_increment 欄位的資料表, 並且將該表中幾個欄位設為唯一值索引, 然後就下了以下的SQL塞資料: INSERT INTO EXAMPLE (a, b, c) VALUES ('1', '2', '3') ON DUPLICATE KEY UPDATE d = '4' 結果發現 auto_increment 欄位中的值越變越大, 不過一千多筆的資料,流水號卻取到七萬多。 看了 MySQL 的說明 , 才發現下 INSERT ... ON DUPLICATE KEY 時碰到 auto_increment 欄位時, 流水號也會持續增加(只有 Update 時才不會增加), 所以下一次真的有新增資料時,流水號會跳得老遠去...... 當下只好照 StackOverflow 上的一篇回覆 修改程式碼解決這個不算大卻有點微妙的問題......

[野人獻曝] 救回使用 innodb 的 mySQL

因為一連串的原因(不要問很可怕), 導致我的 mySQL 整個重啟不能, 好死不死的又因為我資料庫裡面的資料表恰好都是 innoDB, 因此問題更難搞。 經過該死的 Google 和實驗後, 總算找到一個勉強算是救回資料的方法! 方法如下: 無論如何先把 mySQL 先停掉 停掉之後在你的 mySQL 設定檔中加上一行 innodb_force_recovery = 4 * 重新啟動 mySQL,試試看是否可以連進 mySQL,確定可以連進去後,先把所有會寫入 DB 的程式都先關掉,然後開始備份資料。 資料備份完後,請把有用到 innodb 的資料庫砍掉。接著移除上面那行 innodb_force_recovery,並且刪除 /var/lib/mysql 下所有 ib 開頭的檔案,然後重新啟動 mySQL。 接著重建資料庫,並把備份資料匯入應該就可以讓 mySQL 正常運作了。 * 參閱: Forcing InnoDB Recovery

[野人獻曝] 目前正在使用的雲端服務比較

算作個筆記 兼騙發文數 的紀錄好了...... 比較項目 AWS EC2 Microsoft Azure DigitalOcean 價格 高,主機基本租金是最高的,而且還要另計流量和IO 中,其實價格勉強可以接受,而且可以開台灣發票 低,價格最低,開一台入門機一個月只要5鎂 特色 高擴充,其他周邊的支援服務超完善(發email、DNS Hosting,甚至搜尋服務都有) 看看那精美的管理介面......而且如果只是要放一個靜態網站的話也不用莫名其妙開一台主機,可以有效節省資源 價格低,而且機器都是用SSD的 問題 有錢的時候就都不是問題了,問題是沒錢啊 如果他的週邊支援服務能更多一些或許就更有價值了 系統管理菜鳥的話可能需要多花點心力調機器