解決 MySQL 突然佔用全部內存的問題

前段時間落格從虛擬主機遷移到了獨立的vps上,這下所有的維護內容都得我自己動手了。為了性能,另外既然能自己配環境了,自然不會用舊的配置。

我用了 Ubuntu Server 16.04 + PHP 7.0 + Nginx的 + MySQL 5.7 總之,踩了不少的坑。

現在,來記錄一下

關於 MySQL 為什麼會突然占滿記憶體

一開始我以為是vps遭到了攻擊,可是只查看網卡流量就不是這[……]

點擊跳轉以繼續閱讀

Ubuntu的 16.04 為 PHP7 添加 memcached 以及 redis 擴展

切換到 PHP 7 之後,網站的速度大幅提升,不過通常的擴展可能某一個就還沒有支持 PHP7.

Memcached的

比如說我現在使用了最新的 Ubuntu 16.04,雖然內置了 PHP 7 源,但 memcached 就還沒有,不過好在,它已經支持了 PHP 7 ,只是沒有源而已,我們手動編譯它。

要安裝 memcached,需要先安裝依賴庫 libmemcached

這裡找到[……]

點擊跳轉以繼續閱讀

Swift 裡的 單件模式

在寫代碼的過程當中,我們總會遇到需要保證全局只有一個實例的時候,這個時候就要使用單件模式。

單件模式——它確保了一個類只有一個實例,並提供一個全局訪問點。

那麼怎麼實現單件模式呢?我們來看看最經典的 Java 代碼,該怎麼實現這個 單件模式。

我們在網上隨便搜索“java 單件模式”就能找到不少現成的代碼段,這裡是其中隨機摘抄的一份:
[crayon-69054e9d269307804[……]

點擊跳轉以繼續閱讀

把 Ubuntu Server 滾動更新 到 16.04

我們用vps,一般來講還是 Ubuntu 的好用,一方面是對新手來說更加友好,另一方面是一些常用的服務配置都可以一鍵安裝。再加上牛逼的 ufw,真是完美。

不過,現在並不是所有的vps服務商都能夠提供最新的 Ubuntu Server 16.04,真是遺憾。它有太多好處了,比如原生庫就是php7,不再需要額外編譯……

那麼既然是linux,就一定可以直接把它升級到新版本——我記得Ubu[……]

點擊跳轉以繼續閱讀

請謹慎使用 C# 裡的 var

我們都知道,比如 Swift 、 Python 裡,都不需要特別的去聲明一個變量的類型——它們雖然是類型安全的語言,卻可以動態地在上下文中幫你推斷變量的類型。

Python 不用你做什麼,寫一個名字就是默認聲明了一個變量;而 Swift,則更接近我們的題目,它也使用了

如果你有過 Swift 的使用經驗,再來使用 C#[……]

點擊跳轉以繼續閱讀

使用 Let’s Encrypt 在 VPS 上為 Nginx 配置 SSL

之前我們有講過如何給網站開啟全站 SSL 現在我們就一起來看看如何在 vps 上給 Nginx 開啟 Let’s Encrypt 證書並且自動更新。

這篇文章中的內容較舊,關於 letsencrypt 的配置文章,我寫了一篇新的,或許你可以參考看看:letsencrypt 工具改名 certbot

設置環境

首先,我們要準備一下安裝環境,這次我使用的是 CentOS 6.7[……]

點擊跳轉以繼續閱讀

用 python 寫一個功能變數名稱白名單爬蟲

前段時間我寫過一篇文章,說是時候使用白名單來翻牆了,不過那個白名單已經過期好久,用起來不是那麼順暢了,後來我就誇下海口說:我要自己實現一個爬蟲,來爬取中國的網站域名,好更新白名單。

好吧,總之這個爬蟲是寫好了然後上線爬取了一萬多的,不過最後我找到了前人做的更好的方案,於是這個爬蟲項目還是廢棄了。總之,白名單更強大了,只是沒有使用這個爬蟲而已。

爬蟲是用 Python 寫的,並沒有使用經[……]

點擊跳轉以繼續閱讀

在 Ubuntu 中搭建 Minecraft 服務器並掛載 Mod

最近室友在 Ubuntu的 上跑 MC,我幫著搭了一下,但由於包是他自己改過的,所以可能具體的運行過程並不通用,但總體環境配置還是比較通用的。

準備環境

首先 MC 是跑在 java的 環境下的,為了讓它跑的更加順暢,我們還是要在 Ubuntu 上安裝甲骨文的 java 環境:

驗證

安裝好以後,可以使用這個命令來驗證你的 j[……]

點擊跳轉以繼續閱讀

Python 字符串 與 字節數組 轉換

在使用 Python 做網絡編程的時候難免會遇到字符串與字節流的轉換,這裡我們記錄以下幾種常用的方法:

首先是字節數組轉字符串,也就是str:

然後是字符串轉為字節數組:

以上兩種方法不論哪種都是可以的。[……]

點擊跳轉以繼續閱讀

使用 fail2ban 防止 Bind9 被用於 DNS 放大攻擊

前言

我在阿里雲搭建的自用 dnsmasq 服務器,用來做免污染的 DNS,最近由於公開了IP,果然就遭到了攻擊——其實是被用於 DNS 放大攻擊。

由於 dnsmasq 本身就沒有設計為對外提供 DNS 服務,所以它對於安全方面的配置文件不是很多(根本沒有!),但它的解析策略又很方便配置(比如中國DNS解析白名單等),所以我在原本的基礎上,再加了一個 Bind9 作為前端來做安全。[……]

點擊跳轉以繼續閱讀

Mac 版迅雷悄悄收集用戶 BT 種子

就在今天,苦等小半年的 Mac 版迅雷終於又開始更新了,出了個新版本——雖然沒有新功能,但終於還是修復了拖動的時候窗口亂跑的 bug。

不過,也遇到了離線不能下載的問題。在幫助測試排錯的同時,我發現了一些其他的事情:我按照要求使用迅雷自帶debug工俱生成統計信息的壓縮包一共 70M 之大!

無論如何,這麼多的日誌文件——好吧,有過蘋果當年 Mail.app 日誌bug經驗的我對於 G[……]

點擊跳轉以繼續閱讀

讓 TextWrangler 一鍵優化 XML 文件格式

的TextWrangler 是 Mac 上不可或缺的多功能文本編輯工具,內置優秀的代碼高亮,還能支持正則表達式的搜索……總之,對於開發者來說,實在是人手必備。

不過,的TextWrangler 對於 XML 就沒有那麼智能了——打開之後往往是長長的一行!

總之,解決辦法很簡單,我們給 TextWrangler 寫一個腳本即可。

首先

打開 TextWrangler 新建一個空白的文檔([……]

點擊跳轉以繼續閱讀

WordPress 評論回复郵件通知 優化

大多數情況下,我們習慣使用 Wordpress 自帶的評論系統,儘管它不是那麼地盡人意——畢竟,第三方的評論系統實在是讓人難以接受。

第三方比較優秀的多說實在是太噁心了;而國外的幾個不錯的評論系統又很不方便中國使用,總的來說,還是 Wordpress 自帶的評論系統最好用了。

那麼,說起 Wordpress 自帶的這個評論系統,可能郵件通知是它最大的特色了。雖然對外來說 Wordpress 不[……]

點擊跳轉以繼續閱讀

編程語言的強類型、弱類型

大多數情況下,人們用編程語言是否會隱式地轉換數據類型來判斷一門語言是否為弱類型語言,比如 C。

而實際上,對於除了比較經典的語言外,大部分人對於其他常見語言的強、弱類型是分不清楚的——或者說,是不一致的。因此總會有人來爭論它。如果我們以開篇的概念來作為基礎,那麼矛盾就會顯現:

比如 Pascal 曾計劃作為強類型語言,但整體上卻給類型系統引入了一個漏洞,所以技術上來講它是弱類型的。[……]

點擊跳轉以繼續閱讀

讓 Homebrew 走代理更新

之前我們說過,由於國內網絡進一步惡劣,使用 釀造 也要更換國內大學的鏡像源,但是這樣的方法治標不治本,更新是快了,可是下載還是一樣。

結果就是導致大部分的更新都需要去下載源碼然後本地編譯,運氣差一點的干脆源碼也下載不下來,每次都要取消然後重試,不停地手工重複。

——如果能讓終端命令走代理就好了。

是的,你可能想到了什麼比如 proxychains-NG 這類的軟件,其實不用,因為 b[……]

點擊跳轉以繼續閱讀

完成一幅畫——堅持寫完整的程序

寫程序從來都不是一件容易的事情,往往你自己覺得很滿意的作品,用戶卻說你的程序根本就是個半成品。你抓耳撓腮,卻始終不得其解。

早在我念大學之前,我是一名藝術生,在北京學畫。那時候,每天都要畫很多的畫,有人像有水粉色彩有速寫,每次我堅挺三個小時就畫不下去了,就坐著休息玩手機。老師就會走過來說:才三個小時,你這還沒有畫完呢,繼續畫。

我那時是不懂的,就很納悶,明明該有的都有了,為什麼就偏偏說我沒[……]

點擊跳轉以繼續閱讀

武裝你的 QuickLook ——我常用的幾款 QuickLook 插件

使用 OSX 的朋友對於這個系統當中的 QuickLook 一定不會陌生,無論在哪裡,幾乎操作系統的全部地方,對於圖片的內容,你都可以選中它,然後按下空格來快速查看這張圖片是什麼而不需要打開看圖軟件或者圖片編輯器;或者一些文本的文檔以及其他視頻和音頻——這實在是太方便了。

不過,這個 QuickLook 也不是那麼萬能,比如說它只能支持蘋果預置的幾種常見格式(純文本文檔,MP4 格式的視頻,[……]

點擊跳轉以繼續閱讀

未來與虛擬現實

當一個人從現實世界進入到虛擬世界,為什麼會沉浸,是基於什麼,是虛擬世界的魅力,而人天生無法抵擋,從虛擬遊戲迸發出虛擬現實,有更加強大的吸引力。它讓我們走進更加無法預知的空間,人彷彿置身其中的真實性讓人大呼痛快,尤其是向遊戲加入虛擬現實技術,簡直讓人欲血噴張。但是對於該技術的實際應用大部分人還知之甚少,也許你認為虛擬現實就是帶上“虛擬眼鏡”在虛擬環境中走兩圈,但該功能遠比你想像的要厲害。

類似[……]

點擊跳轉以繼續閱讀