借evdev之力 Linux全局热键魔改造

2017-08-31
阅读 4 分钟
6k
Linux用户就像Minecraft玩家,虽然大家玩的都是Minecraft,但是,卧槽,我们一定是在玩不同的游戏(见到建筑师的MC作品时来自小白的惊叹)。要让自己的Linux别人不会用,别人的Linux自己不会用,最重要的当然是要把快捷键改得惊天地泣鬼神。

基于胡诌的物理光照模型

2017-08-05
阅读 4 分钟
4k
在实时渲染的领域里,所有的东西都是胡诌的,只有相对胡诌和没那么胡诌的区别。PBR材质就是相对没那么胡诌的那个,当中还是有大量的东西是很随便的。

GJS和GNOME Extension趟坑指南

2016-07-09
阅读 5 分钟
9.3k
2011年,GNOME释放了万众期待的大版本更新GNOME 3。据wiki描述,这个万众期待的大版本气得Linus Torvalds投向了xfce,并且把GNOME开发组狠狠地骂了一顿。不过在GNOME 3这么迭代了几个版本之后,他又用回了GNOME。

图像处理笔记 —— 卷积

2016-03-19
阅读 3 分钟
7.6k
在这里,输入是红绿黄三个点,对于每个点,它的响应是一个尖头向右下的水滴状,最右就是整个图像在系统响应后的输出。怎样理解响应呢?你可以把输入当作是纸面上一滴滴颜料,响应就是你用手指把它们在纸上抹开(先暂时这样理解)。现在我们化二维为一维,然后来定量分析一下:

图形学笔记 —— 透视除法

2016-03-19
阅读 3 分钟
5.9k
透视:我理解为“有远近感”的,也就是我们平时所说的近大远小。而相对地,近少远多:你站在山顶上,近处你只能看见附近几棵花花草草,但是远处你可以远眺整个城市这么多东西。如果你把人视野内的东西还原回去三维,它们大概会分布在一个圆台上,不是么。

C++在重载operator=为带模板的函数的时候的陷阱

2016-02-21
阅读 1 分钟
6.2k
这会带来一个编译错误,然而横睇掂睇都看不出问题。于是我就试了一下这样的代码:A<float> c; b = c;居然通过了编译。F**k,这个模板居然胳膊肘往外拐。

B-树的一点既不形象又不恰当的比喻

2016-01-07
阅读 2 分钟
1.7k
这是一家互联网公司。公司新招聘进来人了,名字叫A,你不可能让它立刻做管理层吧,所以先把这个新人安排到基层做一线码农。等我看看啊,A同学你是广州分舵 - 移动业务分部 - iOS组的。干了一段时间,这个iOS组的人越来越多了,为了方便管理,公司就把组分开成了两个小组,iOS界面组和iOS业务组,同属移动业务分部,然后...

C++模板技法收录

2015-10-24
阅读 10 分钟
6.9k
C++模板的学习,一来就是Trick太多,二来是规则太复杂而且资料少。我希望在这里总结一下,方便学习。这些C++特性可能只能在比较新的编译器上才能正确编译。下面的代码也都只是Demo,万不能在生产环境中使用。应用在生产环境中时,你还要考虑到const的增减、右值引用以优化性能、访问控制以增强封装等等。

算法笔记 - 用栈模拟递归实现二叉树遍历

2015-10-10
阅读 4 分钟
4.8k
二叉树 这次是一个二叉树的算法。我首先列出二叉树类的代码清单: {代码...} main 中所建造的二叉树有这样的结构: {代码...} 递归先根遍历 不用脑想就随手打出来三行代码: {代码...} 它的输出结果是: {代码...} 用栈来模拟递归遍历 大家知道“栈”这个东西,在操作系统概念或者x86汇编的概念上也有一个,是ESP到EBP所划...

基于Webpy实现服务器策略模型

2015-09-05
阅读 4 分钟
4.3k
这是什么语法?但是我们大抵都能明白它想干什么:先后获取两个字符串,分别将它们和时间拼接在一起,然后在获取return_result后回传结果。然后呢?然后我们有一些Web接口,简单地用web.py编写main.py:

Boost::Asio库详解

2015-09-04
阅读 4 分钟
13.3k
所有的异步操作:异步网络读写,异步时钟,都在io_service.run()时进行轮询。有趣的是,io_service在线程利用方面下了很大的功夫,你可以在主线程建立它的实例,但是在多个线程里面run,io_service很擅长于将需要执行的回调函数分配到空闲线程当中。

图形学笔记: 中点画圆法

2015-04-23
阅读 6 分钟
5.1k
首先我们先研究一下圆本身的性质.圆是高度对称的, 在我们实际画图的时候, 我们只需要计算其中八分之一个圆, 然后把另外八分之七由对称性推出来. 我们选择斜率在0到-1之间的一段. 有了之前画线段的思路, 我们便可以很显然地想到方法: 利用判别式决定画哪个点. 我们希望判别式的作用是这样的:

图形学笔记: Bresenham画线算法

2015-04-23
阅读 5 分钟
9.1k
图形学课本, 按规矩介绍完矩阵行列式, 第一个算法肯定就是Bresenham画线算法了. 來我们來看看算法 Bresenham是用来画一些不反走样的线段的. 都说了线段肯定有起点和终点, 假设我们: {代码...} 按照一些初中(好像是初中吧忘了)的几何, 这条直线的方程是: {代码...} 好我们來变一下型. 首先恶心的除号就拿掉. 然后令dy = y...

图形学笔记: 因为懒所以用了一种叫Netpbm的图片格式

2015-04-23
阅读 6 分钟
4.2k
如果说到图片格式, 大多数人都可以信手拈来很多, BMP, PNG, JPEG, GIF, TIFF等等. 然而这种叫做Netpbm的格式就显得有点陌生, 连Windows默认的系统图片浏览器都不支持这种格式. 这种一开始在Unix世界流行起来的简单图片(位图)格式, 既不支持透明像素, 也不能压缩, 更没有Exif. 它存在的目的, 大概就是为了让我们这些懒得...

如何设计 C++ STL 风格容器

2015-04-16
阅读 4 分钟
6.3k
STL标准库所提供的容器已经足够大多数的应用, 并且足够地稳定。但是当我们需要造点轮子的话,相比起另起炉灶, 能与现有的C++语义和容器兼容更加好. 我总结了一下一个STL-style container所应做的事情.

Linux任务控制

2014-12-14
阅读 3 分钟
4.3k
如任何多任务系统一样, Linux执行的是多个同步的进程. 好吧, 它们只是看上去同步罢了. 实际上, 一个单处理器电脑在同一时间只能运行一个进程, 但Linux内核想办法给每个进程都有时间片轮流执行, 这样看上去它们就是同步的了.

第一次编写bootsect时的问题解决过程

2014-09-08
阅读 6 分钟
5.6k
这是要写一个bootsect, 就是传说中的引导扇区, 软盘的头512个字节, 0xaa55结尾, BIOS在启动后自动把它加载到内存的0x7c00然后开始执行, 这是我仅有关于它的知识了. 我希望在它启动之后能在屏幕上印上一个"Hello, world!\r\n"就是了.

TypeGame: Vim中的打字游戏

2014-08-16
阅读 1 分钟
5.7k
这是本文作者所写的一个小小的Vim插件,小到都不必为它新开一个Github项目。如果曾经玩过金山打字的朋友肯定对这个不陌生,无非两行,上行对照,下行打字。这个Vim脚本模拟了这个方式,也因此它即使名为Game,其实挺无趣的囧rz……