Category

Code

211 posts

awscli的安装

aws是一个不错的云服务器提供商.我们不仅可以ssh登录进去进行各种操作,而且可以在外部通过aws加各种命令上传和下载各种数据.

UTF-8 编码格式

UTF-8格式是一种编码格式.确切的说,它是一种存放Unicode的容器.Unicode包含几乎所有我们需要用到的字符,为了包含这么多内容Unicode本身是一个长整型.但具体存放的时候,我们需要将Unicode拆成若干个Byte.而如何将Unicode序列化呢?UTF-8就是一种解决方案.

Mongodb 按键值去重

MongoDB建立index,可以设置为unique.若在之前有重复的键值,那么我们必须要去除掉重复的.

若我们使用的是原生的mongo且版本小于3.0,则unique为true外,外加参数dropDups为true即可.但除此之外,在mongo3.0+,tokumx,我们只能手工搞定.

ssl certificate 配置记录

现在的世界满是https,若想和外部相处,我们也常常需要使用到https的页面.安全越来越被人重视,而成本并不是很高,配置一个SSL自然是理所应当的.

这次使用的是从 namecheap 上购买的 comodo 提供的 positivessl wildcard产品,价格有点肉痛,实际上大概花了RMB600的样子.

有些细节和以前alphassl搞到的证书不太一样,所以稍稍记录下,以便以后查询.

做了个 wrapper, 聊聊开源协议

开源还是闭源?这是个大问题.辛辛苦苦撸出来的代码,怎么用它自然你说了算.出于各人的喜好,大家尽可以选择一个合适的分享或者不分享的方式. 个人觉得这无关道德.

但是, 若是别人用 GPL License 分享了代码,而你却擅自修改 License, 把你的代码设置为闭源, 这就不仅是不道德的问题了, 理论上说, 你已经违反了你和原作者的协议, 是违法的.

archlinux 的安装记录

arch 是一个轻量的 linux 操作系统, 安装基本控制台命令搞定. 记录如下:

uuid, a simple introduction

uuid,全称Universally Unique IDentifier,是一种id生成方式,我们使用它来生成一唯一的id. 同时,它也被称为guid. uuid有若干生成方法,本文介绍的是一种基于时间的方法(也就是version 1).协议是rfc4122. 在java中,它是系统内置的class.而在c++中,我们想要实现,其实也不困难.

删掉 macOS 的 app 的启动项

之前在脑残安装了一个很胃痛的 app,很快感觉很不好用,直接丢垃圾箱居然还失败,于是直接 sudo 然后把这个 app 强行删掉了。然后手动解析 pkg 一个一个删文件。teamviewer,对,说的就是这位。

过了几天检查系统 log 的时候,发现系统 log 还在报 teamviewer 启动失败什么的。这才记起来忘了删 launchctl 的启动项了。

scala 从 url 中读取内容

如前文所说,scala的Source类自带各种输入,除了文件,也可以从url中获得数据.

最简单的是Source.fromURL

Scala
scala> scala.io.Source.fromURL("http://argcv.com").mkString
res1: String =
<!DOCTYPE html>
<html lang="en-US">
<head>
	<title>argcv | enjoy code, enjoy life.</title>
....

scala 读写文件

scala 一般用于网络上消息的处理,比如读写 mongodb, 处理 http request. 但偶尔写个 script, 还是要读写个文件的.

scala 包装了一个 Source 类,可以读取各种来源的数据, url, file 都可以. 但似乎并没有对写数据做什么处理.

TokuMX的同步似乎有问题

最近配置了下服务器的mongo的replica(实际使用的是tokumx 1.5.x),配置方法也很简单(比如参考这里),因为服务器空闲很多,所以配置了一个primary两个secondary. 在客户端配置的时候,read preference使用的是nearest. 因为在同一区域,所以client会从三台机器上负载均衡地读取信息.

非阻塞的TCP服务设计

云风在12年写了段代码,讲的是socket server开启一个tcp服务,自己维护一个内存ringbuffer,然后利用epoll/kevent来poll request,自己维护循环收集请求.他的原始代码在此处.

最近抽空看了下代码,发现颇有可观之处,然后就改写下收集到我的工具库里面去.代码可以参考这里