发布了文章2022-02-02
节后嘛,得益于 cmdr 原有的 Aliases 功能的升级(除夕时遇到很多意外,都是忙乱惹的祸),bgo 向着不仅只是个 main 包批量构建器迈出了一小步:
发布了文章2022-01-30
bgo 是一个构建辅助工具,它和已知的那些为 go 应用程序构建服务的工具没有多大的不同,都能支持在你的工作环境中交叉编译构建出 go 应用程序的执行文件。<!--MORE-->
发布了文章2022-01-01
在云环境中,云服务商提供了主机模板(和服务器镜像)以便加速服务器节点的开设。这类功能(包括像 Vultr 那样的或者各种 VPS 提供商那样的)有几种不同的架构方法,一般情况下主要是通过 KVM 底层结构,搭配上层的管理模块如 Cobble 之类来组成。
发布了文章2021-12-26
手册页,即 Manual pages,又称作 man page,是在 Unix 或 类Unix 操作系统 在线 软件文档 的一种普遍的形式。 内容包括计算机程序(包括库和系统调用),正式的标准和惯例,甚至是抽象的概念。用户可以通过执行man命令)调用手册页。
发布了文章2021-12-25
less 是 more 的增强版本,它具有更全面的全文件导航能力,以及全文搜索能力。less 在大文件打开方面有很好的优化,在即时显示、快速加载等方面性能突出。less 还支持一次性打开多个文件,它将会逐一地显示这些文件的内容。
发布了文章2021-12-21
For an individual, here is a simple guide to show you howto publish and host your own deb to Ubuntu PPA.
发布了文章2021-10-31
我打算实现一个简单而又不简单的树容器,让它成为标准的文件目录结构式的容器类型。但简单就在于,我只准备实现最最必要的几个树结构的接口,诸如遍历啦什么的。
发布了文章2021-10-28
实现你自己的迭代器使用 std::iterator在 C++17 之前,实现自定义的迭代器被推荐采用从 std::iterator 派生的方式。std::iterator 的基本定义Std::iterator 具有这样的定义: {代码...} 其中,T 是你的容器类类型,无需多提。而 Category 是必须首先指定的所谓的 迭...
发布了文章2021-10-23
确切地说,是指 std::experimental::is_detected, std::experimental::detected_t, std::experimental::detected_or。因为尚未被纳入正式库,所以在现行的编译器中,它们通常至少需要 C++17 规范指定,并包含专门的头文件 <experimental/type_traits>。参考这...
发布了文章2021-10-22
这次的 谈XX模式 系列,并不会逐个全部介绍 GoF 的 23 个模式,也不限于 GoF。有的模式可能是没有模板化复用的必要性的,另外有的模式却并不包含在 GoF 中,所以有时候会有正文的补充版本,像上次的 谈 C++17 里的 Observer 模式 - 4 - 信号槽模式 就是如此。
发布了文章2021-10-21
但如此简单的一个东西,怎么就需要新增一个关键字这么大件事呢?还是元编程闹的!元编程世界里,长的怀疑人生的一串模板类声明让人崩溃,重复书写它们更是累赘。例如一条运行时调试日志输出:
发布了文章2021-10-20
这次的 谈XX模式 系列,并不会逐个全部介绍 GoF 的 23 个模式,也不限于 GoF。有的模式可能是没有模板化复用的必要性的,另外有的模式却并不包含在 GoF 中,所以有时候会有正文的补充版本,像上次的 谈 C++17 里的 Observer 模式 - 4 - 信号槽模式 就是如此。
发布了文章2021-10-19
在 谈 C++17 里的 Factory 模式 中我介绍了 hicc/cmdr-cxx 中的 factory 模板类,看了一下时间表,动念是 0822,居然这么长时间了(而且都三个月了,写个 GoF 系列竟然也没写出来,我不应该这么懒的)。当时提到 factory 的存在的 T data 问题,即在 factory 的 tupl...
发布了文章2021-10-17
备忘录模式也是一种行为设计模式。它在 Ctrl-Z 或者说 Undo/Redo 场所中时最为重要,这里也是它的最佳应用场所。除此之外,有时候我们也可以称之为存档模式,你可以将其泛化到一切备份、存档、快照的场景里,例如 macOS 的 Time Machine。
发布了文章2021-10-03
在地图上对两点进行路线规划就是一种典型的策略模式应用场景。当我们进行起点到终点的路线规划时,我们期待地图给出这些方式的最佳路线:步行。公交,驾车。有时候可能细分为公交(轨道交通优先),公交(换乘优先)等若干策略。
发布了文章2021-10-01
这是第二部分,有关有限状态机(FSM)的 C++ 实作部分,也等同于状态模式实现Prologue上一篇 谈 C++17 里的 State 模式之一 对于状态模式所牵扯到的基本概念做了一个综述性的梳理。所以是时候从这些概念中抽取我们感兴趣的部分予以实作了。C++ 实现(元编程实现)如...
发布了文章2021-09-30
回顾状态模式,考虑实作它的各种问题——特别是有关如何实现一个状态机的问题。同时,这一篇呢,可能不得不分几篇,因为写的时候脑壳在发散嘛,于是就关联得到的、能想起来的都提了一嘴,就多了。但是最后还是会给出代码的,我喜欢写代码的。
发布了文章2021-09-22
上上上回的 谈 C++17 里的 Observer 模式 介绍了该模式的基本构造。后来在 谈 C++17 里的 Observer 模式 - 补/2 里面提供了改进版本,主要聚焦于针对多线程环境的暴力使用的场景。再后来又有一篇 谈 C++17 里的 Observer 模式 - 再补/3,谈的是直接绑定 lambda 作为...
发布了文章2021-09-20
然后我们提到了,对于观察者模式来说,GoF 的原生定义当然是采用一个 observer class 的方式,但对于差不多 15 年后的 C++11 来说,观察者使用一个 class 定义的方式有点落伍了。特别是到了几乎 23 年后的 C++14/17 之后,lambda 以及 std::function 的支持力度变得...
发布了文章2021-09-19
上一回的 谈 C++17 里的 Observer 模式 还是有点慌张,所以需要补充完善一下下Observer Pattern - Part II多种 event (types) 问题我们已经解释过,如果你需要很多不同的 event 对象,那么你应该扩展 event 结构成员: {代码...} 这就好像设计一份通讯协议一般的做法...