Everything you care about in one place

Follow feeds: blogs, news, RSS and more. An effortless way to read and digest content of your choice.

Get Feeder

skywind.me

Skywind Inside

Get the latest updates from Skywind Inside directly as they happen.

Follow now 71 followers

Latest posts

Last updated 3 months ago

为何吸烟

3 months ago

说来惭愧,我有个坏习惯,就是爱吸烟,而原因又有些一言难尽,十个吸烟的人问他们原因,五个可能告诉你年轻时为了耍帅(那时影视剧男主角闲着没事都叼根烟),五个可能告诉你因为好奇或者被人带坏,可我的原因和他们都不一样,读大学时我们专业是全校最难的专业,而我从大二开始大量时间泡在机房里写代码,有些专业课真的是最后几天才去重头学的,那天早晨我抱着《信号与系统》进入图书馆,直到晚上闭馆的音乐响起,我还在盯着第一章习题集的页码发愣,仿佛在看天书。 那是个被四大本校四大名补之一的课程逼疯的寒夜,室友拽着我翻过图书馆后墙,月光下他变戏法似的亮出打火机,烟头明灭间划破黑暗。”提神特效药” 他叼着烟笑的像诡计得逞的狐狸。我模仿港片男主角的派头浅吸一口,却被呛得涕泪横流。 “烟不是这样抽的,要这样——” 他突然敛了戏谑,一脸凝重的接过烟,像我刚才一样先把烟吞到嘴里,顿了一下忽然怒目圆睁,深吸一口气,把烟雾混杂着空气深深的压进了胸腔,然后闭上眼数秒后才缓缓吐出 “看到没,烟要进肺你才会有感觉” 我鬼使神差接过第二口烟,脑袋里一遍又一遍的回忆着他刚才的动作,片刻后我终于把心一横,学着他的样子先把烟吸到口腔中,然后毫不犹豫深深吸了一口气,炽热气流裹挟着尼古丁穿透肺泡的刹那,后颈汗毛一根根的立起。“啪” 的一声脆响,脑海中好像某块玻璃一样的东西碎了一般,这种感觉就就像浑浑噩噩的炎热夏天里,突然有一盆凉水从头浇到了脚,混沌的思维突然被按了清空键,那本啃了三天的教材竟在烟灰弹落间显出清晰的逻辑脉络。 我一边感受着这股透心的凉意,一边抬起惊喜的眼光看向室友,只见他还是站在原处,似笑非笑得看着我 “咱们继续复习吧” 他对我招了招手。 凌晨三点的应急灯下,我们像两个偷食禁果的修士,在缭绕青烟中参透了傅里叶变换的奥义。当破晓的鸟鸣惊散最后一丝烟霭,窗台上的七个烟蒂见证了我对重点公式的顿悟。...

GCC 利用未定义行为进行优化正确么?

4 months ago

说实话,编译器是否该利用 UB 进行优化目前都还是一个争议话题,主要是 gcc 开了个坏头,不予余力的在默认参数下利用 UB 来优化,举个例子,C 语言里带符号整数溢出是未定义行为,编译器应该假设它实际上以某种方式定义了: int foo(unsigned char c)...

异步事件模型的 Self-pipe trick

6 months ago

异步事件模型中有一个重要问题是,当你的 select/poll 循环陷入等待时,没有办法被另外一个线程被唤醒,这导致了一系列问题: 1)在没有 pselect/ppoll 的系统上,信号无法中断 select/poll 等待,得不到即时处理; 2)另一个线程投递过来的消息,由于 select/poll 等待,无法得到即时处理; 3)调短...

WinSock 可以把 SOCKET 类型转换成 int 保存么?

6 months ago

在 Linux/Unix 等 posix 环境中,每个套接字都是一个文件描述符 fd,类型是 int,非常方便,但在 Win32 环境中用的是 SOCKET 类型,这个类型定义是 UINT_PTR...

WinSock 的 select 如何超过 64 个套接字限制?(三种方法)

6 months ago

在做跨平台网络编程时,Windows 下面能够对应 epoll/kevent 这类 reactor 事件模型的 API 只有一个 select,但是却有数量限制,一次传入 select 的 socket...

DOS 软件下载

7 months ago

二十多年前的某一天,我盯着资源管理器里很久没用却一直舍不得删除的 UCDOS 文件夹犹豫了半天,最终却为了给硬盘腾点空间一狠心 shift+delete 把他们彻底删除了,当时我没意识到,一个时代就这样彻底的离我远去;二十多年后的今天,我又在最新版的 DOSBOX 里把这些当年的工具一个个重新装了回去,软件没变,但是消逝的青春却再也回不来了。 做了一个《上古软件仓》,包含上古时代的编程工具,汉字系统和设计软件等,都是一些我以前经常用的软件,主打怀旧和娱乐。 截图:中文系统 (点击 more/continue 继续)...

Vim 文本过滤/文字处理插件

7 months ago

我经常有文本处理的需求,例如将 html 转换成纯文本,或者移除 markdown 里的所有连接,或者繁体转换简体。因此我做了一个插件来管理和执行各种外部文本过滤器。 所谓 “文本过滤器” 是一个命令行程序,它从标准输入读取文本,然后进行一些处理后写到标准输出,在 Vim 里可以用原生的 :{range}! xxx...

Python 的 asyncio 网络性能比 C 写的 Redis 还好?

7 months ago

先前我做过一个 asyncio/gevent 的性能比较《性能测试:asyncio vs gevent vs native epoll》,今天修改了一下 asyncio 的测试程序的消息解析部分,改用 Protocol,发现它甚至比 redis...

EditPlus 的配置方法

8 months ago

作为一名编辑器爱好者,EditPlus 是我最喜欢的编辑器之一,超过 NotePad++,它启动速度比它快,打开文件比它快,功能比它强,颜值也比它高,但大小只有 2MB: 不过要让它变得好用,能够方便开发,还需要做一些必要的设置,先配置下 GCC 的工具: (点击 more/continue 展开) 选择主菜单 Tools->...

CD4:Windows XP 开发宝典

8 months ago

今天互联网上的内容,由于各种原因,正在以越来越快的速度消失,而习惯什么都从网上找的新一代网民们,却并没有备份和记录的习惯及意识。不远的将来,会有一天,当你特别想找某个工具却搜尽互联网你都找不到时,才会发现对珍贵资源做好收藏的必要性。 Windows XP 依然是一个完美的怀旧平台,它可以向后兼容到 Windows 95 的程序,是一个运行经典软件,玩经典游戏的完美方案。 图形界大佬 John Carmack 在推特上呼吁大家,现在应该有意识的保存你的开发环境,这样多年以后你想重新构建你的软件时才不会慌脚乱手,因为通常每过几年你常常会发现,自己之前的老代码已经没有合适的环境编译了: 本光盘包含了构建...

Emake:你见过最简单的 C/C++ 构建工具

8 months ago

CMake 已经成为 C++ 构建工具事实上的标准了,即便觉得它很难用,但项目发布,跨部门协同,基本都以 cmake 为准。尽管你可能觉得其它构建工具更顺手,没问题,你们平时用就行,但项目发布或者跨团队协同时,你得同时用上 cmake 来标准化。 那么对于内部中小项目,非正式个人练手项目,或者非发布阶段的开发过程,是否也需要上 cmake 呢?还真不一定,一旦不用 cover...

CD3:Flash 开发宝典

11 months ago

前段时间碰到个经典的 Flash 游戏想玩一下,发现原网站挂了而游戏又需要验证原网站,于是想对其稍加修改,才发现原来可以下载 Flash 相关开发工具的页面已经全停了: 所有 Adobe 官网可以下载 flash 插件,播放器,SDK,Flash Builder 之类的地方,全被替换成了上面的页面,也就是说今天...