Cliff 的笔记

记录一些心得和思考

One Ring to rule them all?

生活中,老婆想要一个方便处理她的培训班数据的工具,所以打算写一个Web应用。用标准的前后端分离模式开发两个工程。前端用Angular,后端用Spring Boot把数据库放出HATEOAS也就是Restful接口。好处就是可以轻松跨平台运行。 工作中,要用Rust写一个工具库,并加以验证。因为涉及的交互比较复杂,所以打…

2019 年 03 月 03 日

语言间的简单对应关系

最近在用Rust写程序,一开始很不适应ownership概念,感觉缚手缚脚。现在慢慢习惯之后,还是觉得很拘束。只能说这是一种门槛较高的语言,当然换来的是其强调的“安全”;也就是说,用Rust很难写出类似内存泄露的问题。Rust跟其他语言在某些概念上略有不同,在这里简单比较一下。 首先,所有的编程语言都可以用来进行结构化…

2019 年 02 月 21 日

软件进化论

很久以前看到一本开发书,应该是侯捷的《深入浅出MFC》,里面大致有这么一句:有些人习惯由道到器,有些人习惯由器到道。当时就对这句话印象很深。让我从另一个更高的角度开始理解软件开发。 说起来,软件开发中,什么是道?什么是器?周易中说:形而上者谓之道,形而下者谓之器。因此很明显,思想是道,物件是器。那么软件应该是器,但设计…

2018 年 09 月 04 日

老旧电视盒的自我修养

世界杯开始了,家里的两个盒子却开始出状况。小米盒子1S的问题是硬件老旧,系统占资源太多导致操作卡顿;另一个IPTV盒子是ZTE B760H,之前就折腾过了,但不知道为什么时间总是不正常,导致https网页无法正常打开。没得说,必须修理一下。 所谓修理,其实都是软件调整而不是硬件问题。小米盒子问题根源是执行了小米的Lau…

2018 年 06 月 21 日

R8500 源码编译

最近处于一个比较休闲的状态,本来应该写论文的,但实在提不起兴趣来。至于工作方面,手头的事情做完了,暂时没什么BUG过来,所以也就无事可做。 由于闲着也是闲着,想起自己的Netgear R8500还没有开源固件,来了兴致,把Netgear的源码下载下来编译了一下,发现到处是坑。于是多折腾了一会,记录如下: R8500的1…

2018 年 04 月 12 日

vmware 的 USB3.0 不能用怎么办

vmware虚拟机的硬盘只有200G,在做的OS一套源码32G,加上编译out目录,虚拟机里面就剩不了多少空间了。 不幸的是,还有多个repo的代码需要维护,所以只有搞了个移动硬盘。别问我为什么不加内置SSD,已经是512G的SSD了,再加的话,买不起。 新的移动硬盘是WD的My Passport,USB 3.0,接上…

2018 年 03 月 02 日

Aria2 on Netgear R8500

十一月的时候突然有心情,于是买了台R8500,感受了一下传说中的高端路由器。不过实际用起来,也就那么回事。优点是有的,比如:5G速度快太多了,用笔记本局域网无线拷贝数十MB的速度看的我是心花怒放。稳定性和带机量有待观察,但相信肯定比之前的小米Mini好。缺点更不用说,贵成马。 最近开始整理移动硬盘,把旧的降级为下电影专…

2017 年 11 月 28 日

libxml2 的 XPath 解析

libxml2里面,xml的解析有dom方式,还有就是xpath方式。前者是对整个tree的遍历,后者是直接定点查找。对于我自己来说,后者使用比较频繁。其实libxml2官网上例子写的已经很清晰,但注释太少,每次进入状态花的时间有点长。所以这个笔记只是写了一些注释,方便自己需要时能快速进入状态而已。 /&#x…

2017 年 11 月 23 日

一个 Linux 下的 CLI 程序

工作需要,用C++做了一个交互式的CLI应用。其实nodejs和python都是做CLI的好工具,而且boilerplate也很多,但这次是因为里面有些代码需要直接搬运到其他平台使用。如果没有这个需求,就不用绑在C++上。 首先是起步,可以用这个boilerplate。注意这个boilerplate写的过于简略了,建议…

2017 年 11 月 23 日

关于大航海时代的思考

最近几天突然怀念起了大航海时代这个系列,重新下了4代的威力加强版,然后还是一发不可收拾,连续玩了一个星期。 把李华梅通关之后,我突然想搞清楚,为什么大航海这么好玩? 我非常喜欢的游戏,细数起来,有以下几个: 实况系列(WE98/2000/PES6/2017等) 生化危机(2) SNK格斗类 最终幻想系列(6/7/8/…

2017 年 11 月 18 日

Blog 搬家记录

从2013年9月17日在BAE上创建这个Blog时,那时的心情还是有点感动,觉得Baidu还是不错的。 然后很快就被Baidu无情打脸了,先是在未通知的情况下停掉了自定义域名,然后改了免费规则。 于是在2014年2月12日搬到了Openshift,所谓的V2版本。3年多的时间里,Redhat很不错。 不过该来的总是要来…

2017 年 10 月 28 日

八种语言的怨念

实在忍不住再吐一下槽。一个Firefox OS应用,需要用到以下语言: html css javascript c++ idl webidl ipdl script 这破系统还有存在的价值吗?

2017 年 09 月 13 日

一种 Promise 的实现模式

使用Angular 2去获取远端数据源的时候,使用的是Promise。 当远端数据源是Spring Data Rest的时候,每次请求返回的是一页,但页数是根据数据总量和页大小来决定的。 在这种情况下,传统的做法是递归,不断去获取下一页并合并,直到无下一页可取。 但在Promise这种实现方式下,递归是不适合的,有一种…

2017 年 05 月 24 日

libdmclient 代码阅读

libdmclient 是oma-dm的客户端库,基于syncml rtk库封装,后者源出自syncml.org,但现在打不开。libdmclient里面充斥着大量的指针强制转换,且缺少文档。虽然代码量不大,但阅读起来比较繁琐。 libdmclient里面包含了一个test的例子,从这个例子里可以看到libdmclie…

2016 年 11 月 22 日

互联网免费资源整理

最近忙着翻译RCS文档,没空做什么正事,只是抽空整理了一下网站。这里把现在发现的一些网上的值得用的免费资源列一下: 国内访问速度不错的: netlify.com: 现在(2017)的首选。适合放静态站。jekyll/hexo等等都支持。源码可以放github。 Coding.net:适合放源码和静态站(jekyll优…

2016 年 11 月 17 日

Gitbook 写文章的注意事项

最近用gitbook在翻译某技术文档,记录一点注意事项。 如果用github账户登录,则无法用git从gitbook直接下载书籍源码,原因不明,但似乎是因为git命令行无法做oauth认证(怀疑可以用github的token来处理,未尝试)。同样,无法git push。但可以用本地编辑器的sync来push。 …

2016 年 10 月 19 日

使用 bing 每日壁纸做网站背景

前几天放在git pages上的主页太慢,主题又不是我特别喜欢的风格,再加上发现coding.net提供了同样功能的coding pages,于是准备重新做一个jekyll站。 找图的时候,突然想到,能不能用bing的每日壁纸做网站背景呢? 光靠coding pages/git pages,答案当然是否定的。要获取bi…

2016 年 09 月 20 日

关于消息队列

还是为了WebRTC的事情,研究了几天消息队列(Message Queue)。 消息队列,在这里是个专有名词,指的是一个独立的用于消息收发的服务。现成的消息队列服务器有ActiveMQ/RabbitMQ/ZeroMQ等等。其中RabbitMQ使用erlang语言实现,天生就能较好的支持并发。ActiveMQ用的是Jav…

2016 年 09 月 06 日

零成本的静态服务器

好吧,其实就是花了几天搞定了一个Github Pages页面而已。Github Pages的特点是: 免费 限制不多,包括 空间推荐限制1GB,其中单个文件限制100MB,50MB以上时就会收到警告 流量推荐限制每月100GB或100,000次点击 每小时提交推荐限制10次 可以服务静态网站或jekyll网站 …

2016 年 08 月 26 日

SpringBoot 应用开发

需要写一个基于SpringBoot的Web应用作为后续项目基础,这里记录一下。 应用目标:一个Web应用,使用H2做数据库(后续可以方便的替换),flywaydb做数据库版本管理,Spring Security做登录认证和授权。 准备工作:需要maven/h2/gradle等,下载安装完成后要加到path中,方便调用。…

2016 年 08 月 09 日

Top