Refone's Blog

Glad you came.

差量更新与bsdiff解读

二进制大文件的差量更新

意义与应用场景 文件差量更新是常常会遇到的一个场景,最典型的应用场景便是软件的更新。 用户本地的软件更新其本质是对软件文件进行一些增删修改。 软件更新最直接粗暴的方式便是将用户本地不再应该存在的文件删掉;新添加的文件整个让客户下载添加;而对于现有文件的修改,则让客户下载整个修改后的文件,将原文件替换掉。 然而这种更新方式的弊端不言而喻,假设一个大到500M的文件,有10M左右的内容更...

如何锁定 Segmentation Fault 的病灶

告诉我,哪条语句segmentation fault了?

当在一个巨大的工程运行时,突然来了一个Segmentation Fault, 形如: [1] 1776 segmentation fault ./hello 怎么办? 下意识查一下dmesg,会看到真有Error信息: [768977.271941] hello[1480]: segfault at 5652202637c5 ip 000056522026370b sp 0000...

Travis CI 使用指南

从注册到入门

travis CI使用指南 前言 travis CI是一个代码自动测试与部署的开方平台,与GitHub相关联。当你一个GitHub中的某个项目与travis CI进行「绑定」后,你就可以体验travis CI为你带来的便捷——每当你push你的项目时,项目就会自动的在travis Server上的沙盒中按照你规定的测试方法进行测试,成功过后自动部署到你的部署服务器上面。而你所需做的...

AES 加密解读

如果你不满足于黑盒加密算法

本博文是通过阅读博文[1],并结合项目[2]所写,图片大部分来自wiki百科。通过一系列概念的补充和一个具体实例的示范加深理解。 准备原料 这里的原料指的是进行一次最基本的AES加密所需要具备的除源数据以外的东西。本博文暂时讨论128位的AES加密,除128位的AES加密还有192位与256位的AES加密,后文会稍稍提及,不过主要内容讨论的是128位的AES加密。 加密公式: ...