Quick Manual of mysqlbinlog

In case of Database Recovery after unexpected data corruption, list some common used scenarios of mysqlbinlog for processing binary log files.

Display Row Events

Convert binary events to SQL statements, DDL output will be displayed as raw statement, DML output will be displayed as lines beginning with ###, those are “pseudo-SQL” statements which are not executable.

For DML pseudo-SQL statements, they do not correspond exactly to the original SQL statements that generated the events, The original column names are lost and replaced by @*N*, where N is a column number.

Also if you are using multi character set data, those character set information is not available in the display.

为DirectAdmin站点开启HTTPS

自从把博客切成静态站点后访问速度秒WordPress几条街,所以顺势也就把网站上了HTTPS,目前看来效果不错,看着浏览器的绿🔓感觉莫名的安心。

本文介绍如何为部署在DirectAdmin上的站点开启HTTPS访问。

申请SSL证书

既然是免费SSL证书,第一个想到的就是Let's Encrypt,DirectAdmin在1.5版本开始就集成了Let's Encrypt服务,所以在面板上点点就能拿到一个永久的SSL证书,对于在VPS上部署DirectAdmin的人来说真是lucky。

然而我的站点还架在老版本DirectAdmin的虚拟空间上,只能自己找SSL证书了……

目前了解到的BAT三家、七牛等国内云服务商都可以申请到1年免费的SSL证书,来自Symantec。对于个人站点来说,使用这类免费证书都是推荐的。要注意有一些免费的证书提供商今年因为安全等原因相继被各个浏览器弃用,所以申请的时候要优先考虑公信力高的品牌和机构。

Discourse国内建站攻略

最近帮朋友建了个关于数据科学的交流论坛。说实话,近几年运营社区相当不易,网站推广、内容筛选、站务管理一堆麻烦事,不免勾起了学生时代论坛撕逼的黑历史,而当年技术圈的“知名”论坛,现在很多沦为了广告集中地,内容质量已大不如前,操作习惯上也还停留在十年前,体验和SEO都很糟糕。

一开始我是拒绝的,直到某土豪一言不合的买ECS,后来心想不如借此熟悉下ECS和Discourse,一番折腾后论坛上线了:DataGeekers

当然本文只记录建站方法,不讲论坛😶

database/sql包使用须知

Golang的database/sql包为SQL类数据库提供了通用的API操作,它简化了对不同数据库driver的依赖,总体来说是使用简单、操作可靠同时维持了代码的扩展性,不过在使用过程中仍然有一些陷阱和误区,本文就记录下使用database/sql过程中的一些注意点,穿插一部分实现。文中部分例子来自database/sql的使用说明,示例Go版本1.6。

database/sql包的结构其实就分为驱动接口(driver)和DB操作(sql)两部分。源码并没有实现任何一种数据库的驱动,提倡以实现database/sql/driver包的形式来注册第三方的DB驱动,对开发者尽可能的屏蔽特定数据库的feature,算是go的一贯风格吧;如果你使用的SQLite、MySQL、PG这样的数据库,直接使用database/sql就可以完成绝大部分DB操作。

关于驱动

如上,数据库的驱动是第三方实现的,在Go里面,通过匿名导入的方式注册一个附加的driver这种方式很常见,下面就是MySQL的注册方式:

Gopher China 2016参会有感

周六日两天参加了Gopher China 2016大会,这次是第二届,去年一次是在上海,我是第一次参加。

大会分享的topic和嘉宾表现说实话远超我的预期,这里要感谢谢大和土豪赞助商。

下面从我关注的几个方面来说下:

业内应用

这两年Golang在互联网企业被很多开发者选用,从参会人员来看,绝大部分都是互联网业内开发者,用Go的还确实有点多。

这次国内gopher分享涉及多个方向,周知的有云计算/虚拟化(依然是docker)、分布式文件系统/数据库(BFS/TiDB)、大规模网络调度/中间层(CDN/Proxy…)。分享嘉宾也来自不同规模的互联网公司,可以说Golang在多个领域的实践是经得起考验的。同时, 今年还多了AI和MOBILE领域应用的分享。

AI方向的分享确实有点标题党,不过分享者陈辉本人的wukong、zerg项目很有学习价值,跟风关注了一波。

移动端这次讲了将Go代码应用到跨平台SDK开发中的实践,心动网络的演示是将Go代码以静态链接库形式编译到android、ios以及桌面端,虽然这里面仍有诸如runtime性能,扩展性等方面的问题点值得商榷,不过确实对Go在其他领域拓展提供了一种参考,不妨一试。