利用阿里云域名管理 API 实现 动态域名解析 ddns

动态域名解析,缩写ddns,它不同于我们常用的DNS解析,而是专门用于对付那种没有固定公网 IP 的服务器地址解析的。

典型的使用情况就是:自家宽带构建小服务器,没有固定IP,想要上线,除了写脚本发邮件外,就只有ddns这一条路可以走了。

目前来说,国内最知名的可能就是出了名的难用不稳定的花生壳了。国外的话有一个dynu也很不错。

现在阿里云开放了 API,那么我们能否使用阿里云的 AP[……]

点击跳转以继续阅读

embedXcode 找不到 Arduino 系统库头文件

在 Mac 上玩 Arduino,除了可以使用官方的那个简单的 IDE 之外,还可以选择使用 Xcode 来进行开发。

使用 embedXcode 插件即可让 Xcode 摇身一变成为嵌入式开发 IDE,包括了本地编译、上传等全套功能。

不过,在使用标准库的时候就出了问题,比如上图中,我在测试 nRF24L01 这个 SPI 模块,需要用到 [crayon-67ba092e4d[……]

点击跳转以继续阅读

解决 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-67ba092e4e11a6867[……]

点击跳转以继续阅读

把 Ubuntu Server 滚动更新 到 16.04

我们用vps,一般来讲还是 Ubuntu 的好用,一方面是对新手来说更加友好,另一方面是一些常用的服务配置都可以一键安装。再加上牛逼的 ufw,真是完美。

不过,现在并不是所有的vps服务商都能够提供最新的 Ubuntu Server 16.04,真是遗憾。它有太多好处了,比如原生库就是php7,不再需要额外编译……

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

点击跳转以继续阅读

请谨慎使用 C# 里的 var

我们都知道,比如 Swift 、 Python 里,都不需要特别的去声明一个变量的类型——它们虽然是类型安全的语言,却可以动态地在上下文中帮你推断变量的类型。

Python 不用你做什么,写一个名字就是默认声明了一个变量;而 Swift,则更接近我们的题目,它也使用了 var 。

如果你有过 Swift 的使用经验,再来使用 C#[……]

点击跳转以继续阅读

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

之前我们有讲过如何给网站开启全站 SSL 现在我们就一起来看看如何在 vps 上给 Nginx 开启 Let’s Encrypt 证书并且自动更新。

这篇文章中的内容较旧,关于 letsencrypt 的配置文章,我写了一篇新的,或许你可以参考看看:letsencrypt 工具改名 certbot

设置环境

首先,我们要准备一下安装环境,这次我使用的是 CentOS 6.7[……]

点击跳转以继续阅读