2016-07-16 ruki
We create an empty console project first: ```bash $ xmake create -P ./hello create hello ... create ok!👌 ``` And xmake will generate some files: ```bash $ cd ./hello $ tree . . ├── src │   └── main.c └── xmake.lua ``` It is a simple console program only for printing hello xmake! ```bash $ cat ./src/main.c incl 继续阅读 »
2016-08-04 ruki
tbox的vector容器沿用了stl库中vector的命名,说白了就是以数组方式存储元素,也是整个容器库中最基础的容器之一。 当然,在c中用tbox的vector跟用stl的vector其实差不了太多,用起来都很方便。 先看个简单的例子熟悉下: ```c // 初始化一个维护大小写敏感字符串的vector容器,第一参数设置元素自动增长大小,这里使用0表示默认大小 tb_vector_ref_t vector = tb_vector_init(0, tb_element_str(tb_true)); if (vector) { // 在头部插入元素 tb_vect 继续阅读 »
2016-07-21 ruki
The algorithm is based on libtess2 here and we optimizated some implementation and fixed some bugs. The differents between our algorithm and libtess2's algorithm: We change the coordinate system and the sweep direction (sweep line by horizontal here). We need not project the vertices because our graphic engine is 2d, 继续阅读 »
2017-10-25 ruki
xmake-sublime插件深度集成了xmake和sublime text,提供方便快速的跨平台c/c++构建。 注:使用此插件,需要先安装xmake,更多关于xmake的使用说明,请阅读:文档手册,项目源码:Github。 特性 快速开始 语法色彩高亮 API输入自动提示和补全 状态栏信息 完整的命令列表 快速配置支持 构建和运行 快速宏记录和回放 编译错误提示和跳转 快速开始 编译错误提示和跳转 继续阅读 »
2019-01-06 Vaniot
redis https://github.com/antirez/redis/blob/5.0/src/adlist.h https://github.com/antirez/redis/blob/5.0/src/adlist.c 结构体的定义 结构体的实现,双向链表的相关定义于adlist.h中 节点: ```C++ typedef struct listNode { struct listNode *prev; //前一个节点 struct listNode *next; //后一个节点 void *value; //节点的值 } listNode; more 迭代器: C++ typedef s 继续阅读 »
2016-07-28 Li Shuai
greenlet是Python众多协程实现技术中的一种,eventlet是基于greenlet实现的。而eventlet和libev又是gevent的核心。greenlet的上下文切换清晰易懂,可以结合IO事件循环构建出一些高效的事件处理逻辑。不同于yield类型的上下文切换,greenlet的上下文切换从表现形式上看更纯粹,可以直接switch到另一个greenlet,不用管目标greenlet是否已经在运行,不同greenlet之间处于完全对等的状态,可以相互switch。基于yield实现的协程往往只能切换回自己的直接或间接调用者,要想在嵌套的调用中切换出去是比较麻烦的。本质上是因为yield只能保留栈顶的帧,Python3对 继续阅读 »
2016-02-29 AllanChan
随着公司的业务的发展有幸接触到OpenCV 这个图形库,这篇文章主要是总结一下在Mac 上使用OpenCV做一个动态的广告植入。 OpenCV 是什么: OpenCV的全称是:Open Source Computer Vision Library。OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。 OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。 继续阅读 »
2016-07-16 ruki
首先我们通过内置的工程模板创建一个空工程: ```bash $ xmake create -P ./hello create hello ... create ok!👌 ``` 这个时候xmake将会产生一些工程文件,如下: ```bash $ cd ./hello $ tree . . ├── src │   └── main.c └── xmake.lua ``` 这个简单的程序仅仅只是为了打印输出: hello xmake! ```bash $ cat ./src/main.c include int main(int argc, char** argv) { printf("hello xmak 继续阅读 »
2018-01-06 KasperDeng
序 终于有点时间重新回到正常的学习节奏。心里念念不忘GO语言,于是重温一下GO语言的语法,顺便记录下笔记。希望成为一个能实战的GO程序员。 哲学,思想 "21世纪的C语言" 简洁编程哲学的宣言,从长远来看,简洁依然是好软件的关键因素。 Go从C语言继承了相似的表达式语法、控制流结构、基础数据类型、调用参数传值、指针等很多思想。 继续阅读 »
2016-01-30 ALEX LIN
iOS网络编程层次结构 iOS网络编程层次结构分为三层,从上往下依次为: Cocoa层:NSURL,Bonjour,Game Kit,WebKit Core Foundation层:基于 C 的 CFNetwork 和 CFNetServices OS层:基于 C 的 BSD Socket Cocoa层:是最上层的基于 Objective-C 的 API,比如 URL访问,NSStream,Bonjour,GameKit等,这是大多数情况下我们常用的 API。Cocoa 层是基于 Core Foundation 实现的。 Core Foundation层:因为直接使用 socket 需要更多的编程工作,所以苹果对 OS 层的 继续阅读 »