springboot

Spring Boot做了那些没有它你也会去做的Spring Bean配置

“习惯优于配置”的理念让项目快速运行起来

容易创建一个独立运行(bootable jar,内嵌Servlet容器)、准生产级别的基于Spring框架的项目,使用Spring Boot你可以不用或者只需要很少的Spring配置

持续重构

什么是重构??

不改变软件可观察行为的前提下改善其内部结构 —Martin Fowler

通俗说法:看起来没做啥调整,让系统继续更好的满足客户需求。同时,希望重构完成后,这个系统能够多蹦跶几年

db

数据库的东西,往往一个参数就牵涉N多知识点

Xtrabackup

小库可每天完整备份,也用不了多少时间

大数据量备份与还原,始终是个难点。MYSQL超10G,mysqldump导出就比较慢了

MySQL自带工具并不支持真正的增量备份,二进制日志恢复是基于时间点的恢复而不是增量备份

xtrabackup,Percona CTO Vadim参与开发基于InnoDB的在线热备工具,开源,免费,备份恢复速度快(mysqldump 为单线程),占用磁盘空间小,不同情况下的多种备份形式

支持 MySQL、MariaDB 和 Percona

可提供的流备份,可以直接保存到远程机器上(本机硬盘空间不足时很有用)

或是搭建主从,用流式备份大大简化备份后的压缩复制的开销

背书,Facebook 早期用它进行增量备份

XtraBackup 是物理备份,速度很快,能自动验证备份是否有效,自带增量和差异备份功能,在上面功能实现的同时还是热备,对很多公司应用场景来说,已经算是强大到无以复加了

xtrabackup包含两个主要的工具,xtrabackup和innobackupex

  1. xtrabackup只能备份innodb和xtradb引擎的表,不能备份myisam引擎的表

  2. innobackupex前身是封装了xtrabackup的Perl脚本,后重写成可执行文件,支持同时备份innodb和myisam,对myisam备份时需要加一个全局的读锁。myisam不支持增量备份

    xtrabackup中不备份表结构,innobackupex调用xtrabackup子线程后再备份表结构,故常用innobackupex,xtraback不做日常使用

gorouting

CSP是 用于描述两个独立的并发实体,通过共享的通讯 channel进行通信的并发模型

CSP中channel是第一类对象,它不关注发送消息的实体,而关注与发送消息时使用的channel

这是一套独立于语言的东西

rsa

.Net、Java 的RSA类库存在很多细节区别,尤其是它们支持的密钥格式不同

容易出现“我加密的数据对方不能解密,对方加密的数据我不能解密,但是自身是可以正常加密解密”等情况

证书相关

密码学相关的标准、协议很多,想要程序马上work容易,想要搞清楚原理,需要花些时间才行

SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等

lisp

收一些关于lisp的杂文

Lisp的本质》是一篇雄文 作者是美国的俄罗斯移民,一位常年从事IT的程序员,写了这么一篇“洗脑文”,一篇类似传播宗教福音的宣教文

作者叙述了自己被Lisp洗脑的过程,从开始对Lisp的不解、甚至有些鄙视,到如何听到Lisp“先知”的教瑜,出于对大神的崇敬和膜拜,强迫自己开始洗脑的征程

突然有一天,作者“顿悟了”,羽化成仙了,在升天前的最后一刻,向尚未开化的芸芸众生们留下了这篇雄文

作者的“悟”来自于对先前的编程经验与Lisp之间的神秘联系

第一个出场的就是XML语言

21世纪初各大商业IT公司、大学和研究机构看好的,用来描述数据格式的语言

随Web Services的兴起,开始取代相类似的各种专用协议,成为网络传输数据和方法的标准格式

后成为各种编程语言的附属物:各种环境参数配置文件,甚至像迅雷bolt界面引擎这种

XML使用范围的扩大,逐渐发展出一套完整的XML技术,对XML文档的格式的专用语言、对XML文档数据的查询语言等等

XML最大优点,可以定制文档操作符的语义。付出的代价就是语言的笨重,句法多于语义

既可作标准的数据文件也可对某些操作定义其接口或者叫”签名”(signature),这样,XML实际上兼有数据和处理两方面的特征

而这,正是Lisp语言最本质的特征——自定义语言的语义。我不想掩饰当我看到这一段时的拍案叫绝心情