初读《七周七并发模型》

前几天粗略翻阅了一下《七周七并发模型》,这是本从v2ex上收来的二手书,虽然算上快递费也并没比新买一本便宜多少,但是知识是无价的,呵呵。 《七周七并发模型》讲了7种软件开发中最常使用的并发模型,分别是: 线程和锁,最基础最常用,也是其他并发模型的技术基础。我目前经历过的C++项目中基本上都是使用的这种方案,顶多就是选取不同的锁以应付不同的应用场景。 函数式编程,书中讲了Clojure语言,一种基于JVM而语法上又类似Lisp的语言。函数式编程本身有很多值得讲的,

抓取网络小说到Kindle更新

抓取网络小说的小程序断断续续有了不少更新,除了支持更多的小说网站外,还有一些值得一提的内容: 程序结构更加紧凑灵活,新增或删除支持的小说网站只需要直接增加源代码文件或删除对应的源代码文件即可,不需要修改原有的代码。 新增了支持直接生成epub和pdf格式,其中默认的pdf排版针对Kindle DXG做了适配,包括版面大小,边框大小,字体名和字体大小,行间距等,全部都是往在DXG上看最舒服的方向上靠拢。 增加了并发下载的功能,默认以10个并发量下载,然后通过ch

2018新年好

2017年完成了人生中的一件大事。其他的就混过去了。 昨天厨房里水桶里的水满出来了,漫得满地都是,妹子说发水是大发,新年第一天就发,今年要发啦!晚上吃饭时又一不小心把妹子的饭碗给撞到地上摔碎了,阿姨就说碎碎平安。希望2018年会是个好年。 2018年一定要挖一口井。

将expat替换为libxml

我们维护的项目代码量不大,冗余度倒是不低,光是XML parser就有expat,tinyxml,libxml以及一个自己(其实好像是另一个第三方库自带的)手写的parser。我观察了一下,觉得可以把expat和tinyxml都替换为libxml,这段时间就在做这项工作。 好在之前的人在expat之外做了一层封装,ExpatWrapper,所以只要修改ExpatWrapper就可以了,不过倒也折腾了不少时间。这个封装在Windows上是编译成一个独立的dll,导出符号跟内部

抓取网络小说到Kindle

前些天突然心血来潮,写了个小程序,用于从网上抓取网络小说,然后生成content.html,content.opf和toc.ncx文件,再放入一个合适的字体文件,比如经过我几番比较,在我的Kindle4上使用方正准圆比较好,最后用kindlegen生成mobi文件,于是可以使用kindle来阅读网络小说了。 这么多年来我基本上一直是使用电脑或手机来看网络小说,Kindle倒是也买了好几年了,但因为没找到方便的途径把小说弄到kindle上去,于是每次要是连续看3,4个小时小说

日本大阪京都5日游

公司组织的旅游,我报名了日本大阪京都线路,上周四上午出发,这周一(也就是昨天)下午回来。 第一天到达大阪关西机场,出来买了ICOCA卡,ICOCA卡需要500日元押金,又内存有1500日元可以刷卡消费,用于坐火车,公交之类的。坐了一个多小时JR线到京都,再转公交车到酒店。我这次去日本只坐了几次公交,发现他们都是统一票价,乘客从后门上车,前门下车,到站时乘客自己走到前门,下车前在司机旁边的机器上刷卡。京都是个比较小的城市,人也少的感觉。晚上去离酒店不远的一家叫串八的馆子吃了一

一种Firefox同步失败的情况

前些天突然发现家里台式机(Windows 10)上的Firefox不能工作了,具体表现是: 同步不正常 某些https网页打不开 重装后变本加厉,所有https网页都打不开了,同步账户也登录不进了(因为会跳转到一个https页面) 无论我如何删光Firefox的数据,如何重装Firefox,装不同版本的Firefox都是同样的现象,就差重装系统了(估计重装系统都没用)。 本来也怀疑过是家里网络的原因,但是另一个装了32位Windows 10的平板上的Fi

一次装Windows的经历

妹子新工作居然要求自带电脑,然后就报到前一天晚上开始折腾一台老ASUS笔记本,结果折腾得自己改坏了系统登录密码,再也进不去系统,只能重装解决。 说起来已经好多年不装系统了,年纪越大越懒得折腾。从抽屉翻出好久没用过的U盘准备做安装盘,结果用Win32DiskImager烧了几次U盘都不能启动,我以为是备份的镜像文件有问题,打算第二天去公司找好用的镜像再做。 第二天到公司问同事要到了中文Windows7旗舰版的镜像和序列号,顺便问了一下同事用什么软件烧录,才意识到可能是Win

C++11 lambda表达式tips

C++11加入的lambda表达式是一大进步,大概这样用: int a = 1; auto f = [&a](int n)->int { return n+a; }; int b = f(2); 这段代码定义了一个lambda表达式,接受一个int变量参数,返回一个int值,同时又要捕获(即在lambda表达式内访问)外部变量a的引用。 这里有一些tips: 捕获内建类型变量,即不是class/struct的实例的,如果没有修

把blog托管到Coding Pages

自从重新开始写blog,都是托管在github pages上,然后通过cloudflare中转以及https证书。这一套方案总的说来工作得挺好的,但是,万事就怕但是,在大陆cloudflare的服务并不是特别稳定。后来发现Coding.net也提供Pages服务了,还集成了Let’s Encrypt的证书服务,于是就迁过去了。 迁过去有一些事要解决: 在Coding.net上创建一个新的仓库,添加一个remote:git remote add coding git@