embedXcode 找不到 Arduino 系统库头文件

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

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

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

点击跳转以继续阅读

解决 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-679bd6884b4eb2476[……]

点击跳转以继续阅读

把 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[……]

点击跳转以继续阅读

用 python 写一个域名白名单爬虫

前段时间我写过一篇文章,说是时候使用白名单来翻墙了,不过那个白名单已经过期好久,用起来不是那么顺畅了,后来我就夸下海口说:我要自己实现一个爬虫,来爬取中国的网站域名,好更新白名单。

好吧,总之这个爬虫是写好了然后上线爬取了一万多的,不过最后我找到了前人做的更好的方案,于是这个爬虫项目还是废弃了。总之,白名单更强大了,只是没有使用这个爬虫而已。

爬虫是用 Python 写的,并没有使用经[……]

点击跳转以继续阅读