-
完成度练习
线稿: 15min, 总共6h左右. Lesson learned: 背景很靠谱, 就算凑个数也行, 一定要有. 要打草稿, 要有线稿, 这样就算画崩了也不用从蕾姆开始. 均匀的提高完成度, 均匀的添加细节, 避免画崩.
-
妹抖
Maiden, 也就是女仆. 这个词在现代有更多特别的意义. 妹抖是音译, 实际上我怀疑长沙话里的妹陀说的也是她(误). Image via 汁 Maiden, 也就是 Maid, 后者是前者的缩写, 两者并没有什么区别, 原本指的是年轻的未婚女性比如Rozen Maiden. 用在物件上的时候则是指 “保存着完好如初的形态”, 比如Maiden Fortress可能说的一个从未被攻破的堡垒. 虽然也有说法认为是来形容然堡垒过于坚固, 哪怕只靠战斗女仆就能防守. 爱丁堡城堡 就是这么一座城堡. 实际上女仆堡们非常多. 另外Maiden也有表示贞洁的意思, 相比Virgin而言, 纯...
-
使用loop device.
loop device是一种虚拟设备, 可以关联文件把文件当作块状设备(block device)来使用. loop device 位于 /dev/loopx. x 可以是 0~n 的数字. 当你的系统(比如ArchLinux)没有/dev/loop0的时候可以运行命令 modprobe loop. 因为比较新的内核中, loop device的支持是一个内核模块. 使用命令losetup /dev/loop0 /home/miku/disk.iso可以将文件disk.iso和loop0 关联起来.此时我们就可以把/dev/loop0当作一个硬盘设备来使用了. 我们可以mkfs ...
-
Http Range 服务器实现的注意事项
服务器返回为 Content-Range: bytes start-end/total, 其中 开头的bytes别忘了. 0-3/100 表示使用第零个到第三个字加起来四个字节, 文件总长度伪100个字节. 0-99/100 表示传输全部文件, 而不是 0-100/100. 基于3, Content-Length 应该为 start - end + 1 另外, 对于支持的流要记得返回 Accept-Ranges: bytes, 反之也要记得去掉这个头.
-
错误处理
所有程序错误中只有很小一小部分,是我们作为程序员能够直接处理的,剩下的都是不能直接处理的。同时在处理错误的过程中有些错误也会转化成不能处理的,比如网络超时,可以通过重试来处理,但是失败次数到达阈值之后则转化为无法由程序处理的错误。 不能处理的又分为以下几种。 无法通知用户的。(比如OOM) 可以通知用户的,但是用户无法交互的。 可以通知用户的,用户可以提供(或在UI层有默认的)解决方案的。 错误处理带来的分支逻辑可能远远多于,复杂于正常情况的逻辑。但是,我相信合理的分配和处理这些错误才能写出像样的GUI程序。
-
my emacs major mode for stylus
I have some problem using stylus-mode. Stylus-mode can be installed from elpa, but I need to install sws-mode and do some extra work to make it work properly, and its indent logic are …just hard to use. So I rock my own styl-mode. Most of the code are directly copied from the great coffee-mode. Y...
-
leaf-require, resolve module dependencies in browser, like in nodejs.
leaf-require allows you to manage modules with CommonJs module standard, and requires no precompile like browserify do. The trick is simple. Preload all js file of the context, wrap them in a function that closured with some CommonJS variables like require, module, exports, and finally do some m...
-
我的Nodejs的有点奇怪(1)
前言 如果有人跟你说nodejs好棒, 他很有可能是个卖安利的, 但如果他说javascript好棒, 她一定是个心地善良的好人. ——NStal 作为一个nodejs的脑残粉, 经过许多尝试之后算是对nodejs的一些尿性特性有了一些理解。 网上主要都是讲Web开发的, 本文则主要介绍一些非Web的Nodejs的杂七杂八的坑和解决方案。 内存限制 V8毕竟不是为服务器设计的, 因此在nodejs的使用过程中总是会有一些限制。 Buffer大小限制 你是不能创建一个超过1GB的buffer的(早些时候是512MB)。 这是由Buffer::kMaxLength决定的. 主要原因是...
-
一种Nodejs中的错误处理的实践
我在使用Nodejs的过程中感觉她错误处理设计的非常不好。官方关于可能抛出的错误很少有文档。我大部分情况下都是调试的时候出现了错误,再去看错误码处理。这种方式让我开发效率大打折扣,同时我觉得这不是正确的设计程序的方法。 最近,我发现了一种比较不错的错误处理的实践。 nodejs的回调传统 nodejs的回调函数不论有多少个参数,一般第一个参数都是error。也就是当异步操作发生错误时的错误信息。 比如 coffee-script fs.readFile "./config.json","utf8",(err,string)-> if err consol...
-
设计了一个热狗睡袋.
大概就是一个热狗造型的睡袋. 内胆的香肠和外面保暖用的面包可以分开来洗, 酱汁实际上是绳子可以系起来防止灌风. 嘛, 大概就是这种脑残设定… 有机会做出来看看.
-
Leap Motion开发虚拟鼠标
前言 基友把他的LeapMotion落在我家了.妈妈前段时间过来一起去宜家买了个扶椅.椅子很舒服,但是有些矮,没地儿放鼠标.LeapMotion有些帅,但Linux下几乎找不到应用.那我用LeapMotion来做一个虚拟鼠标放椅子上吧! 相关基础 平台:Linux 语言:coffeescript, python, bash 依赖:leapJs, python-xlib, leapSDK, ZeroMQ 其他:简单的几何知识 目标 首先, 明确设计目标:实际可用. 实际可用的意思是: 设置可以麻烦些,代码可以脏些,可以没有界面,可以没有通用性(只适合前言中提...