Freemind 是我为 Hexo 编写的一个开源主题。
特点
Freemind 和 HaHack 所用的主题的基本相似,特点在于:
Bootstrap - 基于 Bootstrap 3.1.1 ;
标签插件 - 专门编写了一系列的 Bootstrap tag plugins ,以最大程度的发挥 Bootstrap 的威力。包括:
textcolor - 插入一段带有特殊颜色标记的文本;
button - 插入一个按钮,并允许为其指定超链接、文本及颜色;
label - 插入一个标签,并为其指定文本和样式;
badge - 插入一个徽章,并为其指定文本;
alert - 插入一段警报文本信息,并为其指定样式。
本地搜索 - 自带一个 本地搜索引擎 ,基于我的另一个项目 hexo-generator-search ;
颜色主题 - 内置多套颜色主题。总有一套符合你的口味;
文章置顶 - 将重要文章置于首页顶部;
内置评论系统 - 内置的评论系统,基于我的另一个项目 comment.js 。
Read More
作为一个图形图像方向的研究生,我经常都在和 OpenGL 、OpenCV 等多种 C++ 库打交道。这些库遵循着不同的规则和用法;另外,为了让自己的程序具有更多的交互能力,编写界面也是一个家常便饭的工作。
然而,随着工程复杂性的增加,库的管理和界面的维护也变得越来越困难:一方面,库的增加和删除不仅会增加学习成本,也会对系统的逻辑层带来影响。而另一方面,如果要让自己的项目易于维护,就要尽可能地应用设计模式,让逻辑和界面分离。但对于科研,一味陷入设计模式的桎梏又会带来过早优化的问题,影响科研进度。
直到后来,我接触到了 openFrameworks ,简直有种相逢恨晚的感觉。openFrameworks 封装了常用的 C++ 库,在此基础上提供了一个直观统一的接口,也大幅简化了编写界面的流程,使得开发图形程序变得很轻松。
本文将为大家介绍这个让人着迷的开发框架 —— openFrameworks。
Read More
去年 8 月份,我尝试自己写代码解析 Linux Man-Pages 的页面。
Man-Pages 使用的是 groff 文本标记语言,其最大的特色就是格式标记宏置于行首,例如 man(7) 第 35~48 的内容为:
1 2 3 4 5 6 7 8 9 10 11 12 .SH NAME man \- macros to format man pages .SH SYNOPSIS .B groff \-Tascii \-man .I file \&... .LP .B groff \-Tps \-man .I file \&... .LP .B man
Read More
最近在读《OpenCV 2 Computer Vision Application Programming Cookbook 》,书中的第三章介绍了如何了在进行 OpenCV 开发时常用的几种设计模式,包括策略模式、单例模式,以及如何搭建 MVC(模型-视图-控制器)架构。内容精彩,让人受益良多。
是否应该在程序中应用设计模式,这一直以来都是一个饱受争议的话题。但这并非本文的讨论重点。笔者的观点是,如果你需要在程序开发中使用面向对象的思想,那就不得不应用设计模式进行设计和重构,以期让自己的程序更加合理。
应该说,OpenCV 和设计模式并没有什么必然的联系,在 OpenCV 程序中实现 MVC 也没有什么特别的魔法。但在这之前,我已经读完了被称为 Gang of Four 的《设计模式:可复用面向对象软件的基础 》,感觉内容有点偏学术,不太好读。而通过 OpenCV 的实际案例来掌握几种设计模式,比起直接去阅读各种设计模式的定义要容易让人接受得多。
Read More
之前我在 Ruhoh 上使用 guard-livereload 来实现自动更新预览。这样,一旦我修改了网站中的内容,livereload 会立马检测到并且通知浏览器刷新页面,不需要自己手动按 F5
刷新了。完全符合本人热衷偷懒的口味。
迁移到 Hexo 后,我也希望能够用上这个功能。经过一番搜索,我发现在 node.js 平台要使用 Livereload 也非常容易。
方法一:使用 LiveReload
安装和使用
首先是先安装 LiveReload 的 node.js 版本:
1 $ npm install -g node-livereload
Read More