在 Xcode 中,我们给 iOS 平台开发 App,免不了要添加一个按钮绑定一个事件,这时候就有说法了,你会发现一个按钮的触摸事件早已经不是以前的一个“Touch Up Inside”那么简单了。
参照题图,目前至少有这么多中有的没的事件可以供你选择,在功能更多的同时,新手可能就更加懵逼了?
这次我们就一起来看看这些事件,究竟都是什么样的手势:
nRF24L01 是一款工作在 2.4~2.5GHz 世界通用 ISM 频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型 SchockBurstTM 模式控制器、功率放大器、晶体振荡器、调制器、解调器。输出功率频道选择和协议的设置可以通过 SPI 接口进行设置。
方便的设置以及极低的功耗使得它被广泛地应用于无线鼠标、键盘;无线门禁、各种智能物联网设备通讯等方面。
动态域名解析,缩写ddns,它不同于我们常用的DNS解析,而是专门用于对付那种没有固定公网 IP 的服务器地址解析的。
典型的使用情况就是:自家宽带构建小服务器,没有固定IP,想要上线,除了写脚本发邮件外,就只有ddns这一条路可以走了。
目前来说,国内最知名的可能就是出了名的难用不稳定的花生壳了。国外的话有一个dynu也很不错。
现在阿里云开放了 API,那么我们能否使用阿里云的 AP[……]
在 Mac 上玩 Arduino,除了可以使用官方的那个简单的 IDE 之外,还可以选择使用 Xcode 来进行开发。
使用 embedXcode 插件即可让 Xcode 摇身一变成为嵌入式开发 IDE,包括了本地编译、上传等全套功能。
不过,在使用标准库的时候就出了问题,比如上图中,我在测试 nRF24L01 这个 SPI 模块,需要用到 [crayon-6a0b29bacd[……]
前段时间落格从虚拟主机迁移到了独立的vps上,这下所有的维护内容都得我自己动手了。为了性能,另外既然能自己配环境了,自然不会用旧的配置。
我用了 Ubuntu Server 16.04 + PHP 7.0 + Nginx + MySQL 5.7 总之,踩了不少的坑。
现在,来记录一下
一开始我以为是vps遭到了攻击,可是只查看网卡流量就不是这[……]
在写代码的过程当中,我们总会遇到需要保证全局只有一个实例的时候,这个时候就要使用单件模式。
单件模式——它确保了一个类只有一个实例,并提供一个全局访问点。
那么怎么实现单件模式呢?我们来看看最经典的 Java 代码,该怎么实现这个 单件模式。
我们在网上随便搜索“java 单件模式”就能找到不少现成的代码段,这里是其中随机摘抄的一份:
[crayon-6a0b29bacde394711[……]
我们都知道,比如 Swift 、 Python 里,都不需要特别的去声明一个变量的类型——它们虽然是类型安全的语言,却可以动态地在上下文中帮你推断变量的类型。
Python 不用你做什么,写一个名字就是默认声明了一个变量;而 Swift,则更接近我们的题目,它也使用了 var 。
如果你有过 Swift 的使用经验,再来使用 C#[……]
CentOS 上默认没有安装 PIP ,而且默认源里也没有,所以我们需要先添加 epel 源:
|
1 |
yum -y install epel-release |
然后再安装 PIP:
|
1 |
yum install python-pip |
[……]
之前我们有讲过如何给网站开启全站 SSL 现在我们就一起来看看如何在 vps 上给 Nginx 开启 Let’s Encrypt 证书并且自动更新。
这篇文章中的内容较旧,关于 letsencrypt 的配置文章,我写了一篇新的,或许你可以参考看看:letsencrypt 工具改名 certbot
首先,我们要准备一下安装环境,这次我使用的是 CentOS 6.7[……]
前段时间我写过一篇文章,说是时候使用白名单来翻墙了,不过那个白名单已经过期好久,用起来不是那么顺畅了,后来我就夸下海口说:我要自己实现一个爬虫,来爬取中国的网站域名,好更新白名单。
好吧,总之这个爬虫是写好了然后上线爬取了一万多的,不过最后我找到了前人做的更好的方案,于是这个爬虫项目还是废弃了。总之,白名单更强大了,只是没有使用这个爬虫而已。
爬虫是用 Python 写的,并没有使用经[……]
最近室友在 Ubuntu 上跑 MC,我帮着搭了一下,但由于包是他自己改过的,所以可能具体的运行过程并不通用,但总体环境配置还是比较通用的。
首先 MC 是跑在 java 环境下的,为了让它跑的更加顺畅,我们还是要在 Ubuntu 上安装甲骨文的 java 环境:
|
1 2 3 4 5 6 7 |
apt-get install python-software-properties add-apt-repository ppa:webupd8team/java apt-get update apt-get install oracle-java7-installer |
安装好以后,可以使用这个命令来验证你的 j[……]
在使用 Python 做网络编程的时候难免会遇到字符串与字节流的转换,这里我们记录以下几种常用的方法:
首先是字节数组转字符串,也就是str:
|
1 2 3 4 5 |
b = b'some byte array' str(b, encoding = "utf-8") #or bytes.decode(b) |
然后是字符串转为字节数组:
|
1 2 3 4 5 |
s = 'some string' bytes(s, encoding = "utf8") #or str.encode(s) |
以上两种方法不论哪种都是可以的。[……]
我在阿里云搭建的自用 dnsmasq 服务器,用来做免污染的 DNS,最近由于公开了IP,果然就遭到了攻击——其实是被用于 DNS 放大攻击。
由于 dnsmasq 本身就没有设计为对外提供 DNS 服务,所以它对于安全方面的配置文件不是很多(根本没有!),但它的解析策略又很方便配置(比如中国DNS解析白名单等),所以我在原本的基础上,再加了一个 Bind9 作为前端来做安全。[……]
TextWrangler 是 Mac 上不可或缺的多功能文本编辑工具,内置优秀的代码高亮,还能支持正则表达式的搜索……总之,对于开发者来说,实在是人手必备。
不过,TextWrangler 对于 XML 就没有那么智能了——打开之后往往是长长的一行!
总之,解决办法很简单,我们给 TextWrangler 写一个脚本即可。
打开 TextWrangler 新建一个空白的文档([……]